一個(gè)奇怪的現(xiàn)象:代碼如下,設(shè)置div是可拖動(dòng)的癌淮,拖動(dòng)div時(shí)會(huì)觸發(fā)dragStart事件
<div draggable="true" ondragstart="dragStart(event)">
<a href="#">xxxxx</a>
</div>
<script>
function dragStart(e) {
console.log(e.target)
}
</script>
奇怪的現(xiàn)象如下:當(dāng)拖動(dòng)a元素的時(shí)候也會(huì)觸發(fā)div的拖動(dòng)事件
正常的現(xiàn)象應(yīng)該是躺坟,只有div綁定了拖動(dòng)事件,那么只有div才會(huì)觸發(fā)事件乳蓄,下面我們演示一下正尺涑龋現(xiàn)象。
我們把a(bǔ)元素改成p元素,其他不變:
<div draggable="true" ondragstart="dragStart(event)">
<p>xxxxx</p>
</div>
這時(shí)美侦,不管怎么拖動(dòng)目標(biāo)元素都是div而不是p
現(xiàn)在我們把p元素加上draggable="true"
<div draggable="true" ondragstart="dragStart(event)">
<p draggable="true">xxxxx</p>
</div>
可以看到這時(shí)p又可以觸發(fā)div的拖拽事件了
結(jié)論
綜上店诗,只有綁定了draggable="true"
的元素才可以通過冒泡觸發(fā)父元素的拖拽事件,而a元素并沒有綁定draggable="true"
音榜,為什么也能觸發(fā)呢?
因?yàn)?strong>鏈接和圖像默認(rèn)是可拖動(dòng)的(https://www.runoob.com/tags/att-global-draggable.html)捧弃,他們默認(rèn)已經(jīng)綁定了draggable="true"