2013-04-18 39 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'); 
    }; 
}); 
相关问题