2
A
回答
3
調用event.stopPropagation()以防止「鼓泡」。或者,如上所述,更改絕對定位元素的父母關係。
0
我有點困惑,我認爲這會通過瀏覽器自然發生。從我收集你試圖做這樣的事情:
<html>
<body>
<div id="block" style="position:absolute; top:0; left:0; width:200px; height:200px; background-color:red;" onclick="alert('clicked');"></div>
<div id="block" style="position:absolute; top:0; left:0; width:100px; height:100px; background-color:blue;"></div>
</body>
</html>
[並不是一個真正的答案,但因爲我想張貼代碼我不覺得評論是恰當]
5
的您遇到的問題是由事件通過DOM樹傳播的方式引起的。當您單擊頁面上的元素時,該元素的點擊處理程序將有機會響應點擊。除非處理程序停止事件傳播,否則父元素將有機會處理該事件,依此類推直到達到根元素。
這種行爲通常感覺很自然,每個「在」被單擊的元素「後面」的元素都有機會對事件作出響應。但是,當您使用絕對定位時,您可以將元素放在dom樹中不是其祖先的另一個元素的前面。此時事件傳播可能會令人困惑。只有被點擊元素的祖先纔會收到點擊事件,這意味着它後面的元素可能不會。
我創建了一個jsfiddle - http://jsfiddle.net/HUGNd/ - 來說明這種情況。
解決此問題的一個快速方法是確保您要響應單擊事件的元素是被單擊的元素的祖先。否則,無論調用哪個元素的事件處理程序,您都可以在JavaScript中實現所需的結果。
相關問題
- 1. 如何禁用元素的子元素的.onclick?
- 2. D3.js更新的onclick等元素
- 3. 禁用窗體元素ASP.NET MVC更新
- 4. javascript dropdown onclick變更元素屬性
- 5. 使用RJS更新元素
- 6. 重新計算jQuery在元素更改後的元素高度
- 7. 使用jQuery更改.click(function(){元素使用jQuery的元素
- 8. 更改調整元素的高度
- 9. tensorflow:更高維的元素減法
- 10. 從defs元素更改不同使用元素的屬性
- 11. 如何更改:before(僞元素)元素(使用jQuery)的屬性
- 12. CSS更改元素高度和寬度
- 13. 更改CSS類元素高度
- 14. 禁用HTML元素
- 15. 使用onclick元素更新剃刀變量
- 16. 如何在Redux中使用React.js進行onClick元素更改?
- 17. mongodb:更新元素?
- 18. 更改span元素
- 19. 在父元素或子元素中使用onclick事件?
- 20. 使用onclick上的<a>元素
- 21. 使用prettyphoto的onclick另一個元素
- 22. 未使用javascript更新的div元素
- 23. 使用Ajax更新Rails中的元素
- 24. 使用Prototype更改元素的ID?
- 25. 使用JavaScript更改元素的位置
- 26. 使用Vue.js更改元素的ID
- 27. 使用javascript更改元素的類別
- 28. 使用Javascript更改元素的位置
- 29. 使用scrapy更改HTML元素的值
- 30. 啓用禁用的元素