我有一个侧边栏,可以在悬停时展开。
因为扩展,折叠可能会打扰,有时我想在有人点击侧边栏时解除悬停。
底部的代码用于第一次取消绑定,但第二次点击再次启用悬停不起作用:
$('.action').click(function(){
$(this).unbind('mouseenter').unbind('mouseleave');
$(this).click(function(){
$(this).bind('mouseenter').bind('mouseleave');
});
});
那么如何在锁定时再次绑定悬停(请不要施工)。
此致
答案 0 :(得分:1)
您需要绑定实际事件.bind('mouseenter', function () { /* whatever */ });
。 jQuery不会自动知道你想重新绑定已经存在的内容。如果需要,可以使用命名函数,这样就不必重写它。
答案 1 :(得分:1)
$('.action').on('mouseenter mouseleave', doStuffOnHover); //initial handler
var bound = true;
$('.action').on('click', function(){
$(this)[bound ? 'off' : 'on']('mouseenter mouseleave', doStuffOnHover);
bound=bound ? false:true;
});
function doStuffOnHover() {
//do stuff here
}
如果在mouseenter / leave上做不同的事情,你当然需要两个功能。