2011-04-01 37 views
0

所以,我有一個腳本,我一直在努力它可以在這裏看到: http://xeo.tryptamine.tv/lookbook2/ 現在,如果你玩弄該腳本,你會看到,如果你點擊它已經在它上面的圖像仍然會得到淡化效果。我需要知道如何正確解除綁定事件並在點擊另一個後重新綁定它。下面是它的點擊功能:檢查以確保相同的項目不能連續點擊兩次jQuery/jScript

  $('.righticons img').click(function(){ 
      var z = $(this).attr("class"); 
      $('.main a img:eq('+z+')').hide(); 
      $('.main a img:eq('+z+')').css({"z-index": y}); 
      $('.main a img:eq('+z+')').fadeIn(); 
      y++; 

我曾試圖彌補如果一個聲明是這樣的,但最後想出了不確定。

  $('.righticons img').click(function(){ 
      var z = $(this).attr("class"); 
      if (z != last){ 
      var last = z; 
      $('.main a img:eq('+z+')').hide(); 
      $('.main a img:eq('+z+')').css({"z-index": y}); 
      $('.main a img:eq('+z+')').fadeIn(); 
      y++; 
      }; 

我甚至開始.unbind玩弄左右(「點擊」),但不知道如何綁定回來。 PS,我有腳本爲每邊的拇指生成一個數字,並根據它的數組位置將它追加到類屬性。感謝任何答案!

回答

0

有幾種方法來處理這個問題,但你能避免綁定和重新綁定,如果你只是跟蹤,如果這個項目是最後一個選擇:

$('.righticons img').click(function(){ 
    if ($(this).data('selected') !== true) { 
     var z = $(this).attr("class"); 

     $('.main a img:eq('+z+')').hide(); 
     $('.main a img:eq('+z+')').css({"z-index": y}); 
     $('.main a img:eq('+z+')').fadeIn(); 

     y++; 

     $(this).data('selected', true); 
    } 
}); 
+0

我認爲代碼也應該取消設置點擊事件中其他img元素的選擇爲false。 – Chandu 2011-04-01 16:41:44

+0

我認爲我必須做的是定義一個數字變量,而不是'選擇'我會查找.data()的呼叫雖然這個腳本確實有效,但它仍然讓我面臨同樣的問題。它沒有擺脫這個屬性。謝謝你的幫助! – Xeo 2011-04-01 16:44:08

+0

所以這裏是解決方案 – Xeo 2011-04-01 18:13:26

0
$('.righticons img').click(function(){ 
    if ($(this).data('selected') !== true) { 
     var z = $(this).attr("class"); 

     $('.main a img:eq('+z+')').hide(); 
     $('.main a img:eq('+z+')').css({"z-index": y}); 
     $('.main a img:eq('+z+')').fadeIn(); 
     $('.righticons img').data('selected', false) 
     $(this).data('selected', true); 
     y++; 
    } 
}); 

附加假所有,但$(this)

相關問題