2013-11-21 48 views
0

我想隱藏兩個類別爲notify-mewrite-review的元素,點擊頁面上的任何位置,但不會在這兩個元素上。在頁面上的任何位置點擊隱藏兩個元素

如何使用原型做到這一點?

現在,如果我點擊即使疊加,他們正在關閉。

PS:我將點擊事件附加到body

回答

1

試試這個:

$(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'); 
}); 

這裏是一個演示:http://jsfiddle.net/wared/U7E2a/

+0

oops .. up這工作像魅力..是在壓力..所以沒有在當時接受:) ..謝謝 –

相關問題