3
A
回答
2
事件冒泡,所以它後面的對象仍然會收到點擊事件。只要忽略前面物體上的事件。但是,如果「在前面」的對象不是「在後面」的對象的孩子,將不起作用。就像拉帕爾所做的那樣,絕對定位元素就是這種情況。你唯一的解決辦法是使用http://robertnyman.com/css3/pointer-events/pointer-events.html
pointer-events: none;
但是,這僅適用於最新的FF和Chrome
或者使用黑客像蘭迪·霍爾建議,你躲在被點擊的元素分派事件你的自我並使用elementFromPoint()
1
我有一個解決方案,只是建立了類似的東西。你需要做的是在可見的對象後面觸發一個事件。你需要在畫布後面的dom觸發事件,基本上?你需要爲跨瀏覽器制定出具體細節,但是這應該讓你開始
element.onclick = function (e){ //or however you're binding it
// create some function so that canvas.style = display none, so that it's not in the way
// then get the element at the click coordinates
var ghost = document.elementFromPoint(e.pageX, e.pageY);
//create an event
var evt = document.createEvent('Event');
evt.initEvent(e.type, true, true);
//set x and y on evt to match the x and y that was used in the original click
evt.pageX = e.pageX;
evt.pageY = e.pageY;
//do the event on the element
ghost.dispatchEvent(evt);
// create some function to reshow the canvas.
}
或者,你可以隱藏特定的元素,如果你想點擊它背後的畫布上的東西。或者,如果在事件發生後不需要它,則可以完全摧毀畫布而不是隱藏畫布。
相關問題
- 1. 如何讓tableViewCell不會收到幻燈片事件?
- 2. 添加ID到raphael對象
- 3. NSWindow不會收到鍵盤事件
- 4. ListView不會收到點擊事件
- 5. 收到錯誤:試圖讓非對象
- 6. React onChange事件不會返回對象
- 7. 爲每個Raphael對象設置事件處理程序
- 8. jquery收聽新增對象的事件
- 9. AS3:從其他對象接收事件
- 10. 爲什麼我會收到「對象引用不設置到對象的實例」
- 11. Raphael SVG事件類似Element.dblclick()
- 12. MailboxProcessor.Dispose不會使對象GC可收集
- 13. 返回一個只能接收事件但不會發出的對象
- 14. 不可見的元素不會收到鼠標事件
- 15. 內容腳本不會收到我發送的對象
- 16. Raphael JS:如何從Dom對象(Element.node)獲取Raphael元素?
- 17. UIButton在旋轉後不會收到事件
- 18. QGraphicsItem不會收到鼠標懸停事件
- 19. 事件接收器不會影響到refesh列表
- 20. 分配GetViewForAnnotation後,Xamarin.Forms類不會收到Click事件
- 21. 在ChildViewController中的一半幻燈片不會收到事件
- 22. 帶自定義視圖的NSMenuItem不會收到鼠標事件
- 23. 嵌套視圖/控制器不會收到事件
- 24. 移動按鈕不會收到點擊事件
- 25. 谷歌地圖標記不會收到點擊事件
- 26. UICollectionView中的按鈕不會收到觸摸事件
- 27. 自定義UIView不會收到觸摸事件
- 28. bytesWritten,但其他設備永遠不會收到NSStreamEventHasBytesAvailable事件
- 29. 從筆尖加載的視圖不會收到觸摸事件
- 30. 未收到或未收到UPnP事件