2013-04-18 37 views
1

我無法使用.off爲框刪除事件處理程序。使用.off刪除事件處理程序

一旦單擊一個框,我需要爲該框刪除事件處理程序,目前我已將鉤子「.clickable」並刪除該類,並嘗試刪除事件處理程序,然後將事件處理程序應用回所有框一類「.box」。

 $('.clickable').off('click','**').on("click", function(event){ 

     if(!$('.box').is(':animated')) { 

      var position = $(this).position() 
      , targetPosition = $('.target').position(); 

      $(this) 
       .clone() //clone element 
       .addClass('cloned') //add class to cloned element 
       .css({ 
        'position' : 'absolute' 
       , 'top' : position.top 
       , 'left' : position.left 
       }) 
       .appendTo('body'); //append to the document 

       animate(position,targetPosition); 

       $(this) 
        .removeClass('clickable') 
        .addClass('notActive'); 

     }; 

    }); 

感謝大家對你的建議和幫助,如果任何人想看到最後演示的「工作」在這裏是一個小提琴

working version

回答

3

修正爲您的代碼,沒有測試但應該工作

$(document).on("click", '.clickable', function(event){ 
    if(!$('.box').is(':animated')) { 
     var position = $(this).position(); 
     var targetPosition = $('.target').position(); 
     $(this) 
      .clone() //clone element 
      .addClass('cloned') //add class to cloned element 
      .css({ 
       'position' : 'absolute' 
      , 'top' : position.top 
      , 'left' : position.left 
      }) 
      .appendTo('body'); //append to the document 
      animate(position,targetPosition); 
      $(this) 
       .removeClass('clickable') 
       .addClass('notActive') 
       .off('click'); 
    }; 
}); 
相關問題