Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击页面上的任意位置隐藏两个元素_Javascript_Prototypejs - Fatal编程技术网

Javascript 单击页面上的任意位置隐藏两个元素

Javascript 单击页面上的任意位置隐藏两个元素,javascript,prototypejs,Javascript,Prototypejs,我试图用类notify me和write review隐藏两个元素,单击页面上的任意位置,但不要单击这两个元素 如何使用原型实现这一点 现在,如果我点击叠加,它们都被关闭了 PS:我正在将单击事件附加到正文尝试以下操作: $(document).on('click', function (e) { var re = /(^|\s)(notify-me|write-preview)(\s|$)/; if (re.test($(e.target).classNames())) ret

我试图用类
notify me
write review
隐藏两个元素,单击页面上的任意位置,但不要单击这两个元素

如何使用原型实现这一点

现在,如果我点击叠加,它们都被关闭了

PS:我正在将单击事件附加到
正文

尝试以下操作:

$(document).on('click', function (e) {
    var re = /(^|\s)(notify-me|write-preview)(\s|$)/;
    if (re.test($(e.target).classNames())) return false;
    $$('.notify-me', '.write-preview').invoke('hide');
});
下面是一个改进的版本,它通过目标元素的祖先出现:

$(document).on('click', function (e) {
    var re, els, iterator;
    re = /(^|\s)(notify-me|write-preview)(\s|$)/;
    els = [$(e.target)].concat($(e.target).ancestors());
    iterator = function (el) { return re.test(el.classNames()); };
    if (els.find(iterator)) return false;
    $$('.notify-me', '.write-preview').invoke('hide');
});

这里有一个演示:。

oops。。是的,这很有魅力。。我有压力。。所以当时没有接受:)。。谢谢