Javascript 使用on()重新启用悬停
我有一个容器,它将根据单击的链接显示/隐藏 流程:Javascript 使用on()重新启用悬停,javascript,jquery,Javascript,Jquery,我有一个容器,它将根据单击的链接显示/隐藏 流程: 单击菜单按钮,它会显示容器2秒钟,并显示计时器,然后淡出 单击容器内的链接,防止容器褪色 再次单击菜单按钮,它允许容器再次褪色 奇怪的是,在最后一步之后,如果你悬停,鼠标会将容器移出,它不会褪色。我试过了。我有一种感觉,我没有在()上调用,对 我已经尝试在$('.menu控件')中使用它。在('click')上,允许再次删除鼠标,但我认为我需要定义它 $('#module-container').on('mouseleave'); 我还尝
- 单击菜单按钮,它会显示容器2秒钟,并显示计时器,然后淡出
- 单击容器内的链接,防止容器褪色
- 再次单击菜单按钮,它允许容器再次褪色
,
对
我已经尝试在$('.menu控件')中使用它。在('click')
上,允许再次删除鼠标,但我认为我需要定义它
$('#module-container').on('mouseleave');
我还尝试了其他一些方法,包括在函数中包装整个悬停,命名它,并在单击菜单按钮时调用它。没有成功
当视频作为背景播放时,“选项”将在单击菜单按钮后显示,并淡入淡出以避免妨碍。容器中的链接将实际停止视频,使其淡入淡出,并在页面上保留选项
不能像那样重新启用事件处理程序。使用
.off()
时,它会从元素中删除指定的事件处理程序。因此,如果要重新注册处理程序,需要将处理程序引用再次传递给.on()
方法
由于您需要多次使用处理程序引用,因此更愿意将其作为独立函数编写,以便可以从多个位置引用它
你需要像这样写
$('.menu-control').on('click', function() {
$('#module-container').fadeIn(300);
window.mtimer = setTimeout(function(){ $('#module-container').fadeOut(300); }, time);
//The following commented line doesn't work. I want to reallow the mousleave function, defined below (marked as HERE)
$('#module-container').on('mouseleave', mouseenter);
});
function mouseenter(){
clearTimeout(window.mtimer);
}
function mouseleave(){
window.mtimer = setTimeout(function(){ $('#module-container').fadeOut(300); }, time);
}
var time = 2000;
$('#module-container').on({
mouseenter: mouseenter,
//HERE
mouseleave: mouseleave
});
$('.stopme').on('click', function(e) {
$('#module-container').show().off('mouseleave');
e.preventDefault();
});