0

我有一个容器,当悬停在 ( #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但为了时间,我将代码剥离为它的基本功能。

这是 JSFIDDLE 上的代码。

4

0 回答 0