2013-10-03 236 views
1

嗨,我有我的顯示和隱藏的休耕代碼。 但在我的瀏覽器中,這些nu加號或減號圖像。JQuery顯示/隱藏或切換圖像+/-

$(window).ready(function() { 
     $('header').click(function() { 
     var text = $(this).children(' #bericht'); 

     if (text.is(':hidden')) { 
      text.slideDown('200'); 
      $('img', this).attr('src', 'images/icons/up.png').show(200);   
     } else { 
      text.slideUp('200'); 
      $('img', this).attr('src', 'images/icons/down.png').show(200);  
     } 

    }); 

    $('img', this).attr('src', 'images/icons/up.png').show(200); 

    }); 
}); 

這是我的html代碼,我有。

<section id="box-ui"> 
    <header class="head-title">Test kopje<img class="toggle" src="images/icons/up.png" /></header> 
    <div id="bericht" class="berichtui"> 
    <a href="#">Beetje tekst hier maar....?</a><br> 
    Beetje tekst hier maar....?<br> 
    Beetje tekst hier maar....?<br> 
    Beetje tekst hier maar....?<br> 
    Beetje tekst hier maar....?</div> 
</section> 

<section id="box-ui"> 
    <header class="head-title">Test kopje<img class="toggle" src="images/icons/up.png" /></header> 
    <div class="berichtui"> 
    Beetje tekst hier maar....?<br> 
    Beetje tekst hier maar....?<br> 
    Beetje tekst hier maar....?<br> 
    Beetje tekst hier maar....?<br> 
    Beetje tekst hier maar....?</div> 
</section> 

那麼,我做錯了什麼人,誰可以告訴我;)

這就是我對JSFIDDLE

+0

變化'$(本)。兒童( '#bericht ')''到$(本).closest(' 節 ')。找到('。berichtui')'。此外,您可能希望擺脫所有這些重複的ID,這是無效的HTML,如果您嘗試按ID選擇,會導致問題。如果它被多次使用,請將其作爲課程。 –

回答

2

只有當前文檔有一個就緒事件,窗口沒有。
在你設置源碼的最後一行代碼中,this是窗口對象?
ID box-ui被使用兩次,其他一些ID也使用了兩次?
不要引用動畫方法的速度。
您還設置了箭頭圖像作爲背景。

$(document).ready(function() { 
    $('header').on('click', function() { 
     var section = $(this).closest('section'), 
      text = section.find('.berichtui'), // use classes, not ID 
      img  = $(this).find('img'), 
      state = text.is(':hidden'); 

     text[state?'slideDown':'slideUp'](200); 
     img.prop('src', function() { 
      return state ? 'images/icons/up.png' : 'images/icons/down.png'; 
     }); 
    }); 

    $('.box-ui img').show(200); 
}); 

FIDDLE

+0

+1,因爲從技術上講,你首先回答,我首先發布但由於它沒有完成而被刪除,然後重新發布。我也提到OP。 – PSL

+0

你們倆都很好地工作 – Drokz