如标题所示,我正在尝试在以前未绑定的 DIV 对象上重新绑定“mouseleave”事件。
$(object).unbind('mouseleave');
工作得很好。
$(object).bind('mouseleave');
没有。这样做的正确方法是什么?
在这里,我上传了一个jsFiddle 示例 如您所见, .bind() 处理程序不起作用......
如标题所示,我正在尝试在以前未绑定的 DIV 对象上重新绑定“mouseleave”事件。
$(object).unbind('mouseleave');
工作得很好。
$(object).bind('mouseleave');
没有。这样做的正确方法是什么?
在这里,我上传了一个jsFiddle 示例 如您所见, .bind() 处理程序不起作用......
绑定事件处理程序时,还需要传递处理程序函数引用
$(object).bind('mouseleave', myfunction);
// a handler method
function myfunction(){
}
myfunction
对先前注册的处理程序方法的引用在哪里
尝试这个
document.getElementById(previousRepId).onmouseleave= fun;
或者
$(object).bind('mouseleave', fun);
fun
您要绑定的方法在哪里。
基本上,您必须在绑定事件时传递一个处理程序。您想重新附加以前的 unbound mouseleave event
,但由于处理程序位于匿名函数中,因此您没有对其的引用。
解决方案是将您的处理程序分配给变量以供以后使用。
$(document).ready(function(){
var handlerIn = function(){ console.log('in')},
handlerOut = function(){ console.log('out')};
$('.mydiv').hover(handlerIn, handlerOut);
$('.remove').click(function(){ $('.mydiv').unbind('mouseleave', handlerOut); });
$('.add').click(function(){ $('.mydiv').bind('mouseleave', handlerOut); });
});