2013-07-11 18 views
0

我有像真的很多相似的塊和不喜歡的不喜歡的div jQuery腳本:隱藏出現像每塊

<div class="cal_days com_each_photo"> 
<img class="littleimage" src="img/calendar/calendar_2.jpg" alt="day"> 
<div class="com_blur"> 
    <div class="com_link_like" style="cursor:pointer">like!</div> 
    <div class="com_link_dislike" style="cursor:pointer;display:none">dislike</div> 
    </div> 

<div class="cal_days com_each_photo"> 
<img class="littleimage" src="img/calendar/calendar_2.jpg" alt="day"> 
<div class="com_blur"> 
    <div class="com_link_like" style="cursor:pointer">like!</div> 
    <div class="com_link_dislike" style="cursor:pointer;display:none">dislike</div> 
    </div> 

... 我做了jQuery腳本:

$(document).ready(function(){ 
    $(".com_link_like").click(function() { 
     $(this).hide(); 
     $('.com_link_dislike').show(); 
     $('.com_link_dislike').click(function() { 
      $(this).hide(); 
      $('.com_link_like').show(); 
     }) 
    }) 
}); 

問題:它可行,但是當我推「like」時,所有的div都改變了cl屁股「.com_link_dislike」改爲「.com_link_dislike」,但我只需要在確切的區塊中改變它。如何修復?

+0

究竟是你想達到什麼目的? –

+0

我希望此功能只能在一個模塊中使用,而不能在其他類似的模塊中使用。 –

+0

如果可能的話,你可以在jsfiddle上分享任何演示...? –

回答

0

如果你只想改變相關的喜歡/不喜歡,遍歷樹。

$(this).parent().find('.com_link_like').show(); 

將轉到父dom,找到正確的div,並顯示它。

0

我不知道什麼是你試圖讓,但我認爲這可能會有幫助:

$(document).ready(function(){ 
    $(".com_link_like").click(function() { 
     $(this).hide(); 
     $(this).next().show(); 
    }); 
    $('.com_link_dislike').click(function() { 
     $(this).hide(); 
     $(this).prev().show(); 
    }); 
}); 
+0

這個作品呢!謝謝 –

+0

這個解決方案的缺點(就像@Arun P Johny一樣,答案基本相同,但代碼少一點)就是你不能重新排列div。如果您決定按不同順序放置按鈕,則必須更改腳本,請牢記這一點;) –

0

您需要將您的選擇縮小到兄弟目前的元素,在這種情況下,你可以使用。接下來()和.prev()

$(document).ready(function(){ 
    $(".com_link_like").click(function() { 
     $(this).hide().next().show(); 
    }) 
    $('.com_link_dislike').click(function() { 
     $(this).hide().prev().show();; 
    }) 
}); 

演示:Fiddle

+0

謝謝!有用!!! 真的非常感謝) –