javascript - 如果当前选择了某些内容,则阻止多个功能

标签 javascript jquery

我有一个导航菜单,在悬停时(使用hoverIntent插件和tweenmax进行动画)会用相关的背景图像替换div。我这一切都工作正常,但我困惑的是如何防止在当前选定的元素上重复该操作。因此,例如,如果您将鼠标悬停在第一个上,然后将鼠标悬停在其上,我不希望在您再次将鼠标悬停在该上时重复该操作,因为它已被选中。附件是我的 fiddle 的链接http://jsfiddle.net/olichalmers/5csofnhz/1/

var homeNav = function () {
    var tgt = $(this);

    $("#homeImageNav a ").hoverIntent({
        over: homeNavOver,
        out: homeNavOff,
        interval: 0
    });

    function homeNavOver() {

        var tgt = $(this);
        var bgHold = $("#bgHolder");
        var bg = tgt.attr('data-bg');

        if (!tgt.hasClass('current')) {
            TweenMax.set($("#bgHolder"), {
                opacity: 0,
                background: bg,
                scale: 1.1
            });
            TweenMax.to(bgHold, 1.5, {
                opacity: 1,
                scale: 1,
            });
        }
        //tgt.addClass('current');
    }

    function homeNavOff() {
        //if (tgt.hasClass('current')) {
        //tgt.removeClass('current');
        //}
    }
};

这是 homeNav 功能。

最佳答案

您只需要在您的函数 - homeNavOff 中进行如下更改:

function homeNavOff() {
    $('#homeImageNav a').removeClass('current');
    $(this).addClass('current');
}

查看它的实际操作fiddle

关于javascript - 如果当前选择了某些内容,则阻止多个功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30072751/

相关文章:

javascript - 为什么不顺风覆盖本地定义的样式?

javascript - 过滤后的 HTML 列表 : making li elements initially invisible

javascript - 添加 value 属性而不删除旧的属性

asp.net - 哪个 Javascript 历史回溯实现是最好的?

javascript - Chrome、firefox 和 IE11 中的按钮间距有所不同

javascript - 数据库选择服务中的所有angular websql,获取数组

javascript - 如何在不全局修改 fs 的情况下执行 Promise.promisfyAll(fs) (编写库时)?

javascript - 如何创建一个添加带有 HTML 标签和类的字符串的按钮?

jquery - IE 中无需重新加载页面即可更改 URL

javascript - 如何在单击时关闭其他子菜单