jquery: 解除绑定一个特定的函数,留下另一个

jquery: unbind a specific function leaving the other one

我有一个简单的问题:我有两个不同的函数绑定到点击事件:

$("#selector").click(function one() {
// stuff
});

$("#selector").click(function two() {
// other stuff
});

我只想解绑其中一个。我该怎么做?

您需要将绑定的函数保存到变量中。之后,您可以使用 jQuery 的 .off()-方法解除绑定:

(function($){

  var alert1 = function(){
    alert('1');
  }, alert2 = function(){
    alert('2');
  };
  
  // Bind alert1
  $('button').on('click',alert1);
  
  // Bind alert 2
  $('button').on('click',alert2);
  
  // Unbind alert2
  $('button').off('click',alert2);

})(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button>Alert</button>

off function就是您要找的

The .off() method removes event handlers that were attached with .on()