我有一个让我疯狂的jQuery事件绑定问题......
假设我有两个相同类型的事件处理程序绑定到同一个对象。以下是绑定到mousemove
对象的window
事件的示例。
$('body').on('mousedown', '#uiScrollbar', function(e) {
var uiWidth = ui.width();
var mouseStart = e.pageX;
$(window).mousemove(function(e) {
e.preventDefault();
var pixelsMoved = mouseStart - e.pageX;
ui.width(uiWidth + pixelsMoved);
});
}).mouseup(function() {
$(window).unbind('mousemove');
});
所以现在让我说我在窗口中添加另一个mousemove
事件,以获得完全不同的东西。显然,$(window).unbind('mousemove')
将解除两个事件处理程序的绑定。我知道在原始JS中你可以将addEventListener()
方法分配给引用变量,然后使用它来删除事件监听器,但我似乎无法找到有关jQuery如何支持使用a的任何文档参考变量。
也许我错过了一些非常简单的事情?谢谢!
答案 0 :(得分:3)
var handler = function() {
alert( "The quick brown fox jumps over the lazy dog." );
};
$( "#foo" ).bind( "click", handler );
$( "#foo" ).unbind( "click", handler );
答案 1 :(得分:1)
您需要使用.off(),例如
$('body').off('mousedown', '#uiScrollbar')