【问题标题】:jquery, adding and removing event handlers [duplicate]jquery,添加和删除事件处理程序[重复]
【发布时间】:2012-05-10 05:32:49
【问题描述】:

我有 2 个按钮

 $(".button1").on("click", function(event){
 $(".button2").on("click", function(event){

我想做的是从 button1 开始并没有事件侦听器,当 button2 被点击时,事件侦听器被删除并且按钮 1 的事件侦听器被激活。

这是一种相当常见的技术,在 actionscript 3 中使用方法 removeEventListener() 并希望在 jquery 中使用类似的方法或技术。

【问题讨论】:

    标签: jquery events addeventlistener


    【解决方案1】:

    如果您想删除与jQuery.on 绑定的事件处理程序,那么您可能需要jQuery.off

    http://api.jquery.com/off/

    【讨论】:

      【解决方案2】:

      on() 方法绑定事件和off() 解除绑定。如果你给off() 提供参数,它将只取消绑定提供的事件,但没有参数取消绑定所有事件。

          $('.button1').on('click', function() {
              console.log('button1');
              $(this).off('click');
              $('.button2').on('click');
          })
          $('.button2').on('click', function() {
               console.log('button2');
              $(this).off('click');
              $('.button1').on('click');
          })
      

      【讨论】:

        【解决方案3】:

        这就是我所拥有的,但它不会重新打开事件侦听器

         $(".slide1").on("click", function(){
            $(this).addClass('on');
            $('.slide2').removeClass('on');
             $(this).off('click');
            $('.slide2').on('click');
        });
        
        $(".slide2").on("click", function(){
            $(this).addClass('on');
            $('.slide1').removeClass('on');
            $(this).off('click');
            $('.slide1').on('click');
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-21
          • 1970-01-01
          • 1970-01-01
          • 2016-06-06
          • 2013-07-04
          • 2012-09-04
          相关资源
          最近更新 更多