Javascript Jquery - 如果单击子元素则不关闭

标签 javascript jquery function

好吧,我有一个脚本可以关闭所有 div,除非这些 div 具有此类名称。以下脚本运行良好:

window.onclick = function(ev){
    if((ev.target.className !== 'ddHeader') && (ev.target.className !== 'ddSubmenu')&& 
    (ev.target.className !== 'ddContainer')&& (ev.target.className !== 'ddItem')){
        delay_close_sub();
    }
};

所以现在我需要对子元素做同样的事情。我想将其添加到上面的代码中,类似于:

window.onclick = function(ev){
    if((ev.target.className !== 'ddHeader') && (ev.target.className !== 'ddSubmenu')&& 
    (ev.target.className !== 'ddContainer')&& (ev.target.className !== 'ddItem') && 
    ev.target.element !== 'ddHeader > input){
        delay_close_sub();
    }
};

我在末尾添加了: ev.target.element !== 'ddHeader > input') 但它不起作用。我该如何做这个工作?我想确保当 ddHeader div 内的输入字段被单击时,它不会触发“delay_close_sub() 函数。

感谢您的帮助。

最佳答案

您可以以更高效紧凑的方式使用 JQuery:

$(window).click(function(ev){
    if(!$(ev.target).is('.ddHeader,.ddSubmenu,.ddContainer,.ddItem,.ddHeader > input'))
        delay_close_sub();
});

这意味着如果事件目标与任何逗号分隔的选择器都不匹配,请关闭您的事物。

关于Javascript Jquery - 如果单击子元素则不关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963731/

相关文章:

javascript - 将 jsPlumb 与我的 slider 集成时遇到问题?

javascript - 用 onkeyup() 替换 JQuery.keyup() 是安全的做法吗?

Javascript - 调用函数

javascript - Javascript 中的泛型类型

function - Dart 中如何返回函数?

javascript - 为随机加载的 div 添加样式

jquery - Bootstrap nav-tabs active color 为每个 Bootstrap Active Tab 更改不同的颜色

jquery - 来自 jquery-ui 的日期选择器图像

c++ - 通过引用将整数类型的变量传递给函数会比通过值更有效吗?

python - python中的 "test case failed"是什么?