zepto 阻止事件冒泡失效

事情是這樣的:

html

<div class="div2"> 
      <div class="div1"></div>
</div>

js

$('body').on('click', '.div1', function(event) { 
     alert('a on c');
     event.stopPropagation();
 }); 
$('body').on('click', '.div2', function(event) { 
      alert('a on b');
 });

這種情況事件都綁定到了body上,當(dāng)我單擊div1的時(shí)候觸發(fā)事件,但是我不想讓div2上邊的事件也觸發(fā),所以我要阻止事件冒泡。那么問題來了,不生效,div2上邊的事件還是觸發(fā)了。經(jīng)過各種阻止事件冒泡的方法(return false; ),結(jié)果還是一樣無效。
通過網(wǎng)絡(luò)查詢沒有找到自己滿意的答案。有一個(gè)網(wǎng)友說了一下方式:

$('.div1').on('click', function(event) { 
        alert('a on c'); 
        event.stopPropagation();
 }); 
$('.div2').on('click', function(event) { 
       alert('a on b');
 });

當(dāng)這不是我想要的結(jié)果。在某些情況下,我必須把事件綁定到一個(gè)父級(jí)元素的形式。尤其是觸發(fā)事件的元素是后來動(dòng)態(tài)加載進(jìn)來的。
后來特地用jQuery 也做了測(cè)試。jQuery 完全可以實(shí)現(xiàn)沒有任何的問題.

jQuery源碼

 stopPropagation: function() { 
        var e = this.originalEvent; 
        this.isPropagationStopped = returnTrue;
        if ( e && e.stopPropagation ) {
             e.stopPropagation();
        } 
}

Zepto源碼

e = compatible(e);
if (e.isImmediatePropagationStopped()) return;
e.data = data;
var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args));
if (result === false) e.preventDefault(), e.stopPropagation();
return result

jQuery 源碼還算看的懂,是要實(shí)現(xiàn)這個(gè)阻止冒泡,但是Zepto 這個(gè)就完全搞不懂了,所以在源碼上找到問題的根源是破滅了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 總結(jié): 鼠標(biāo)事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,714評(píng)論 2 10
  • jQuery基礎(chǔ) 什么是JQ?一個(gè)優(yōu)秀的JS庫,大型開發(fā)必備JQ的好處?一簡(jiǎn)化JS的復(fù)雜操作二不再需要關(guān)心兼容性三...
    幺七閱讀 1,001評(píng)論 0 2
  • 以前聽老師講解事件冒泡和事件捕獲機(jī)制的時(shí)候跟聽天書一樣,只依稀記得IE使用的是事件冒泡,其他瀏覽器則是事件捕獲。當(dāng)...
    web蝸牛閱讀 2,677評(píng)論 0 1
  • 第1章 鼠標(biāo)事件 1-1 jQuery鼠標(biāo)事件之click與dbclick事件 用交互操作中,最簡(jiǎn)單直接的操作就是...
    mo默22閱讀 1,343評(píng)論 0 6
  • 夜已至,不覺眠 星空下 有神話,有信仰, 有樓宇,有燈光, 有能量,有樹木,有雪人 卻沒有你。
    暑假作業(yè)閱讀 219評(píng)論 0 2

友情鏈接更多精彩內(nèi)容