在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 嵌套在安卓app里的h5頁面,js事件機(jī)制出現(xiàn)了異常

嵌套在安卓app里的h5頁面,js事件機(jī)制出現(xiàn)了異常

html代碼如下

<div id="father" class="ss1">s1<div id="children" class="ss2">s2</div></div>

事件綁定如下

$('#father').on('click',function (e) {
alert('我是father')
})
$('#children').on('click',function (e) {
alert('我是children')
e.stopPropagation();
})

正常情況下我點(diǎn)擊s2時是先彈出我是children,再彈出我是father,但是卻出現(xiàn)了先彈出我是father,后彈出我是children的情況
我嘗試了用原生的addEventListener('click',fun,fasle)來處理,可以解決,但是由于這段代碼是后來生成的,所以不能用addEventListener。
請問如何在不改變html布局的情況下,阻止事件捕獲,是不是得在父元素事件里做判斷,
還有,為什么會出現(xiàn)這種情況,同事說是chrome版本問題,可是不知道怎么確定。

回答
編輯回答
朽鹿

1.你的html是動態(tài)添加的,那么一樣可以在dom動態(tài)添加之后再用addEventListener注冊事件
2.jquery的on有第三個參數(shù)$('.wrapper').on('click', function (e) { e.preventDefault(); }, false)

2017年3月12日 21:12
編輯回答
茍活

不對吧,js里面取得是class,但是html里面是id{},就算html是class{father,children},但是e.stopPropagation();阻止了冒泡,點(diǎn)擊s2根本不會彈出'我是father'。

2017年5月16日 03:26
編輯回答
熊出沒

使用事件委托可以事件
基于JS事件的冒泡機(jī)制

比如你的容器為#a
動態(tài)插入的元素為#b

在#a上監(jiān)聽click事件,判斷event.target.id是不是等于b即可

如果你用.bclass這種,以此類推

2017年3月9日 17:42