【问题标题】:how to remove a particular callback from handler in jquery or javascript如何从 jquery 或 javascript 中的处理程序中删除特定回调
【发布时间】:2013-11-20 12:16:55
【问题描述】:

您好,我想从 body 元素的 jquery 处理程序中删除特定的回调。我正在使用 ajax 调用加载页面中的内容,主页面加载一次,子页面包含 body 元素的处理程序。每次加载子页面时,它都会将回调添加到 body 元素。有什么办法可以解决这个问题。

【问题讨论】:

    标签: jquery events callback handler


    【解决方案1】:

    使用命名空间的事件名称,然后在将事件添加到 body 时将其删除,就像在 subpage 1 中一样

    $('body').off('click.page1');
    $('body').on('click.page1', function(){
    })
    

    【讨论】:

      【解决方案2】:

      查看 jquery 的unbind 方法。您应该能够执行以下操作:

      var handler = function() {
        alert( "The quick brown fox jumps over the lazy dog." );
      };
      $( "#foo" ).bind( "click", handler );
      $( "#foo" ).unbind( "click", handler );
      

      【讨论】:

        【解决方案3】:

        在使用on 添加处理程序之前,您始终可以使用off

        $(document.body).off('the_event_name', theOldHandlerFunction);
        

        【讨论】:

          【解决方案4】:
          $('#myimage').click(function() { return false; }); // Adds another click event
          $('#myimage').off('click');
          $('#myimage').on('click.mynamespace', function() { /* Do Something*/ });
          $('#myimage').off('click.mynamespace');
          

          使用on()/off()函数

          【讨论】:

            猜你喜欢
            • 2011-08-18
            • 2019-09-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-08-13
            • 1970-01-01
            • 1970-01-01
            • 2023-02-11
            相关资源
            最近更新 更多