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更改元素的類javascript
- 2. 如何禁用元素的子元素的.onclick?
- 3. D3.js更新的onclick等元素
- 4. 的onclick元素
- 5. 禁用窗體元素ASP.NET MVC更新
- 6. 禁用或更改Firefox的元素/圖像高亮顏色
- 7. Onclick文檔元素永久禁用?
- 8. 通過滾動使動畫元素變得更寬更高動畫元素
- 9. 使用RJS更新元素
- 10. javascript dropdown onclick變更元素屬性
- 11. Jquery。更改元素位置onclick
- 12. 使用jQuery更改.click(function(){元素使用jQuery的元素
- 13. 重新計算jQuery在元素更改後的元素高度
- 14. 更改項目控件窗口中元素的zindex手機
- 15. 更改高度元素的焦點
- 16. tensorflow:更高維的元素減法
- 17. 更改調整元素的高度
- 18. 的OnClick在元素
- 19. 使用onclick屬性更改元素的外觀
- 20. 如何更改:before(僞元素)元素(使用jQuery)的屬性
- 21. 使用Javascript - 更改元素在指定的元素SRC
- 22. 從defs元素更改不同使用元素的屬性
- 23. Get onClick元素返回到主元素?
- 24. 我可以在WPF Canvas中使用較低ZIndex的HitTest元素嗎?
- 25. 更改CSS類元素高度
- 26. CSS更改元素高度和寬度
- 27. 圍繞更高元素包裹
- 28. jQuery動態更改元素高度
- 29. 禁用HTML元素
- 30. 如何在Redux中使用React.js進行onClick元素更改?