【问题标题】:Once bind with live func一旦与 live func 绑定
【发布时间】:2012-01-15 02:24:50
【问题描述】:

如何将点击与实时功能绑定一次?

我试过了:

$('.expansion_button').die('click', function(){
   $('.expansion_button').live('click', expansion);
});

但是这个,ajax查询后两次绑定点击;

我该如何解决?

(我的英语很差)

【问题讨论】:

    标签: jquery live die


    【解决方案1】:

    如果我理解正确,试试这个

    $('.expansion_button').one('click', function(){
       alert('Next click will not alert!');
    });  
    

    Here 是上述代码的工作演示

    【讨论】:

      【解决方案2】:

      如果您希望实时处理程序对每个匹配的元素只执行一次,请执行以下操作:

      $('.expansion_button').live('click', function(e){
      
          if( $.data( this, "liveclicked" ) ) {
          return true;
          }
      
      $.data( this, "liveclicked", true );
      return expansion.apply( this, arguments );
      });
      

      【讨论】:

        【解决方案3】:

        Jquery .die() 会杀死您附加到该元素的处理程序。为了绑定它,您只需像以前一样使用 live:

         $('.expansion_button').live('click', expansion);
        

        如果你想删除绑定的事件,然后调用 .die(),则在该函数的某个位置,例如:

        $("unbind-element").click(function () { 
          $(expansion_button).die(); 
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-07
          • 1970-01-01
          相关资源
          最近更新 更多