我有一个容器,当悬停在 ( #module-container
) 上时,它会在计时器上消失,但是当单击 a 时.return-news
,它会停止悬停并防止其消失。#module-container
现在我需要它,当通过函数调用时,我需要像以前一样再次允许悬停效果。这是悬停代码:
var module = $('#module-container');
$('.menu-control').add(module).mouseenter(function() {
module.stop().show();
clearTimeout(window.mtimer);
console.log('hovered');
});
$('.menu-control').add(module).mouseleave(function() {
var time = 3000;
window.mtimer = setTimeout(function() {
module.fadeOut(600);
}, time);
console.log(window.mtimer);
});
通过单击.return-news
,我已经成功地停止了这一行的悬停:
$('.return-news').on('click',function(e) {
e.stopPropagation();
module.add('.menu-control').off('mouseenter').off('mouseleave');
console.log('stop it!');
});
不工作:如果单击.next-video
,则需要重新启用悬停(然后将使用先前声明的 mouseeneter 和 mouseleave 函数)。我试过打电话给这条线,但它不起作用:
$('.next-video').on('click',function(e) {
e.stopPropagation();
module.add('.menu-control').on('mouseenter').on('mouseleave');
});
稍后,我将通过使用 Vimeo 的 API(而不是单击)调用它来重新启用悬停,.next-video
但为了时间,我将代码剥离为它的基本功能。