在标题中,我试图在DIV对象上重新绑定'mouseleave'事件, 以前没有绑定。
$(object).unbind('mouseleave');
工作正常。
$(object).bind('mouseleave');
没有。 这样做的正确方法是什么?
我在这里上传了jsFiddle example 如您所见,.bind()处理程序不起作用......
答案 0 :(得分:1)
绑定事件处理程序时,还需要传递处理函数引用
$(object).bind('mouseleave', myfunction);
// a handler method
function myfunction(){
}
其中myfunction
是对先前注册的处理程序方法的引用
答案 1 :(得分:0)
试试这个
document.getElementById(previousRepId).onmouseleave= fun;
或
$(object).bind('mouseleave', fun);
其中fun
是要绑定的方法。
答案 2 :(得分:0)
基本上,绑定事件时必须传递处理程序。您想重新附加以前未绑定的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); });
});
<强> demo jsFiddle 强>