在鼠标下移时检测被点击的元素
Detect clicked element on mousedown
我试图找到一种方法来获得什么元素被点击时,鼠标下拉行为被启动,这可以类似于这个工作:
function mousedrag(d){
if(selectedObject == rectangle)
{
...
}
else if(selectedObject == circle){
...
}
else{
...
}
}
请帮忙,提前感谢
在鼠标拖动中使用this.nodeName
:
function mousedrag() {
if (this.nodeName === "circle"){
// it's a circle
} else if (this.nodeName === "rect"){
// it's a rectangle
}
}
完整的工作示例:
<!DOCTYPE html>
<meta charset="utf-8">
<style>
</style>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script>
var width = 500,
height = 500,
radius = 20;
var drag = d3.behavior.drag()
// .origin(function(d) { return d; })
.on("drag", dragmove);
var svg = d3.select("body")
.append("svg")
.attr("width", width)
.attr("height", height);
svg.append("circle")
.attr("r", 20)
.attr("cx", 100)
.attr("cy", 100)
.call(drag);
svg.append("rect")
.attr("width", 30)
.attr("height", 30)
.attr("x", 200)
.attr("y", 200)
.call(drag);
function dragmove() {
if (this.nodeName === "circle"){
d3.select(this)
.attr("cx", d3.event.x)
.attr("cy",d3.event.y);
} else if (this.nodeName === "rect"){
d3.select(this)
.attr("x", d3.event.x)
.attr("y",d3.event.y);
}
}
</script>
</body>
相关文章:
- 检测页面上某个元素中选择(突出显示)或单击的内容
- 如何检测重叠元素下的单击
- 检测未来元素的存在并采取行动
- 当静态元素与滚动上的固定元素位置重叠时进行检测
- 如何使用javascript检测不可滚动元素中的滚动事件和方向
- 如何在呈现页面后使用 Java 脚本检测 dom 元素值的值是否有任何变化(例如,任何输入或复选框值更改)
- 检测单击了哪个元素
- 检测可滚动元素内的滚动位置
- 在幻灯片放映时检测元素具有特定类
- 单独检测共享同一类的元素
- 如何检测html元素是否在浏览器窗口中
- Javascript检测元素前面的元素
- 如何检测多点触摸手指何时移动到子元素上
- 如何检测 javascript 中元素的存在
- 使用jquery.visible.js和偏移量检测元素是否在视口中
- 使用突变观测器检测添加到DOM的元素
- 正在检测Html元素是否与另一个Html元件重叠
- 滚动后,检测元素何时返回到原始位置
- 突变观察者未能检测到元素's删除dom
- 从自定义元素检测事件侦听器(惰性地发出事件)