javascript - tag中文 - html title



防止執行父事件處理程序 (2)

我有一棵div樹:

<div id="a" onclick="func">
    <div id="b" onclick="func">
         <div id="c" onclick="func">
         </div>
    </div>
</div>

當對div進行單擊時,它會使其子項不可見 - 即單擊“a”將使“b”和“c”變為不可見。

function func{
   if ($(childId).hasClass("visible")){
    $(childId).removeClass("visible");
    $(childId).addClass("invisible");
}

問題是:單擊“b”將調用“a”的單擊並使“b”和“c”不可見。 如何使用jQuery禁用“a”的單擊?

謝謝


Answer #1

使用

event.stopPropagation()

停止將事件冒泡到父元素,從而阻止任何父處理程序被通知事件。

點擊b和c時


Answer #2

您可以為子項添加一個處理程序,以防止click事件向上傳播:

function handler(event) {
    event.stopPropagation();
    // now do your stuff        
}
$('#a').add('#b').click(handler);

這樣點擊'#b'就不會傳播到'#a' 。 點擊'#c'也不會轉到'#b' ,因此也不會轉到'#a'





jquery