javascript - 在任何地方单击时删除类,除非单击某个文本框

标签 javascript jquery

我正在尝试稍微改进以下脚本:

$(document).click(function(event) {
    $('.home.active').click();
    $('.home').removeClass("active");
});

这行得通,但当我不希望它工作时它也能工作。例如,我有一个文本框。如果该文本框获得焦点,则不应删除该类,但如果单击页面上的任何其他内容,则应删除该类。所以我尝试了以下方法,但不起作用:

$(document).click(function(event) {
    if( $('#txtHomeSearch').focus() ) {
        // don't remove class
    } else {
        $('.home.active').click();
        $('.home').removeClass("active");
    }
});

这会阻止类被完全删除,无论我点击哪里,文本框始终具有焦点。

最佳答案

您可以使用 event.target确定被点击元素的 id:

$(document).click(function(event) {
    if (event.target.id === "txtHomeSearch") {
        // Don't remove class.
    } else {
        $('.home.active').click();
        $('.home').removeClass("active");
    }
});

关于javascript - 在任何地方单击时删除类,除非单击某个文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845294/

相关文章:

javascript - Jasmine 错误 - .div 上触发了预期事件 [object Object]

javascript - 正确使用onmousemove

javascript - 有没有办法修改重定向页面的外观?

javascript - JQuery中两个div的切换位置

javascript - 使用 jquery 发送动态文本

jquery - 动态地将三张卡片水平对齐一行

javascript - 如何将 Sequelize 总和作为 json 返回?

javascript - 在 jQuery 中打开子菜单链接

javascript - 如何动态增加JS中的div id

jQuery 在 Mouseleave 事件上隐藏菜单