event.cancelBubble = true e.stopPropagation () Zrušiť spracovanie udalostí, blokovať udalosti

Event Cancelbubble True E



Pripojte sa

Rovnako ako vyššie, keď kliknete na tr, preskočíte na inú stránku.



<tr style='cursor:pointer' onmouseover='this.style.backgroundColor='gainsboro'' onmouseout='this.style.backgroundColor=''' onclick='return Click()'>



function Click() {



window.location.href = 'xxx'

}

Pripojte sa možno zmeniť na Pripojte sa



Takto sa zabráni preskočeniu na inú stránku pri kliknutí na značku. Onclick = 'event.cancelBubble = true' zruší spracovanie udalosti.

V opačnom prípade kliknutím na a prejdete na inú stránku.

Analýza:

Zrušte prebublávanie udalosti. V mechanizme udalostí IE sa spúšťacia udalosť nahrá z podradeného prvku do nadradeného prvku krok za krokom, to znamená, že ak podradený prvok spustí udalosť kliknutia, spustí sa tiež udalosť kliknutia udalosti nadradeného prvku. cancelBubble = true môže zastaviť udalosť a pokračovať v nahrávaní

Dodávka udalosti Ie je navyše zdola nahor:

Objekt zdroja udalosti-> horný objekt-> horný objekt -> .....-> telo-> dokument-> okno

Dodávka udalosti NS je zhora nadol:

okno-> dokument-> telo -> ....-> Objekt zdroja udalosti

(event.returnValue = false nastaví návratovú hodnotu udalosti na hodnotu false, to znamená zruší spracovanie udalosti)

2, rozdiel medzi týmito dvoma udalosťami

e.cancelBubble=true// ie block bubbling

e.stopPropagation()// Block bubbling under other browsers

Zastaviť šírenie Tón je formálnejší a vážnejší, význam je „zastaviť šírenie“.
zrušiť bublinu Tón je hovorovejší, podobne ako v prípade chatu je voľný preklad „zrušiť bublanie“, teda neklebetiť.

V skutočnosti teraz, keď IE vyhovuje štandardu W3C, môžu obidve udalosti zabrániť bublaniu udalosti.

Pri svojej skutočnej práci používam nasledujúce.

/ / Directly written in HTML Print //written in js {$vo.billcode} function td_click(obj,ev){ layer.open({ Title: 'View details', type: 2, area: ['800px', '650px'], fix: true, maxmin: false, content: $(obj).data('myhref'),offset: '100px' }) var e=(ev)?ev:window.event if (window.event) { e.cancelBubble=true// ie under } else { e.stopPropagation()// Other browsers } }