我在使用CreateJS的画布中有两个形状。在每个形状中,我都包含一个带有鼠标悬停听众的自定形状的点击区域。两个形状是一个在另一个之上。当我点击形状时,我收到了两个回调。有可能只获得可见形状的回调?CreateJS只击中可见元素
0
A
回答
0
到DOM,途中鼠标交互工作原理类似是气泡在显示列表,其中不包括不属于事件目标的层次结构链的一部分的元件。
这意味着兄弟或其他显示列表的元素不会接收到事件处理程序(这就是您所描述的),并且您不会接收不是鼠标事件目标的元素的鼠标事件。
但是,您可以使用getObjectsUnderPoint
很容易地连接您自己的交互,它告诉您鼠标下的内容。
stage.on("click", handleClick);
function handleClick(event) {
var list = stage.getObjectsUnderPoint(event.localX, event.localY);
for (var i=0, l=list.length; i<l; i++) {
console.log(list[i]);
}
}
下面是一个简单示例:http://jsfiddle.net/y8jhb26x/
注意,您可以将鼠标事件添加到要限制哪些对象将触发此检查(我只是用阶段)任何容器,但是当你打电话getObjectsUnderPoint
,它将返回任何东西下的鼠标。如果你只想查看该容器中的项目,您可以使用contains
方法来过滤掉不想要孩子:
for (var i=0, l=list.length; i<l; i++) {
if (someContainer.contains(list[i])) {
console.log(list[i]);
}
}
您也可以使用getObjectsUnderPoint
参数来筛选出的项目与鼠标处理程序,或尊重mouseChildren/mouseEnabled
财产,这是实际的鼠标交互如何工作。
希望帮助!
相关问题
- 1. 如何在元素中只显示:: after伪元素可见?
- 2. Selenium,Safari:只截取可见元素
- 3. 如何raphael.serialize只有可见的元素?
- 4. 只更新可见的DOM元素?
- 5. jQuery只验证可见的元素?
- 6. 点击计数可见元素
- 7. “点击”一个不可见的元素
- 8. 点击隐藏可见元素D3.js
- 9. 点击不可见/重叠元素
- 10. 使元素可见并隐藏点击
- 11. 元素不可见
- 12. 元素不可见
- 13. 我试图通过使其可见,但代码单击下一个可见元素单击隐藏的元素
- 14. ASP使不可见元素可见
- 15. 硒可见,非可见元素(下拉)
- 16. 如何在createjs中掩盖dom元素
- 17. 单击元素时只关注可信元素吗?
- 18. 如何在搜索结果中只选择可见元素
- 19. 只在码表板中对齐可见元素
- 20. 硒的HtmlUnit org.openqa.selenium.ElementNotVisibleException:您可能只对可见元素
- 21. 如何点击Selenium WebDriver中不可见的元素?
- 22. jquery点击其中一个可见元素处理程序
- 23. python selenium:元素在[weird]下拉框中不可见被点击
- 24. 元素被隐藏并且不可点击(但其可见)
- 25. 有没有办法看到元素是否可见,可点击?
- 26. 元素是否可见?
- 27. WebdriverJS ElementNotVisibleError:元素不可见
- 28. org.openqa.selenium.ElementNotVisibleException:元素不可见
- 29. 元素不可见Selenium
- 30. iOS UI元素不可见
它适合我!感谢:D – RafelSanso