获取最接近的元素使用jQuery最接近()函数
问题描述:
一个SVG节点我有以下代码:获取最接近的元素使用jQuery最接近()函数
$(document).ready(function() {
var svg = d3.select("svg");
svg.append("circle")
.attr("class","cursor")
.attr("r", 8)
.attr("cx", 100)
.attr("cy", 100)
.on("click", test);
function test(d)
{
f = d3.select(this);
console.log($(f).closest('svg').css('border-color','red'));
}
});
我注意到,这是行不通的。但是,如果我在非SVG元素(像div或canvas这样的常规html元素)上执行相同的功能,它会完成它应该做的事情。 我首先想到的问题是d3的选择。然后我用类属性直接解析元素:
console.log($('.cursor').closest('svg').css('border-color','red'));
没有成功。
有没有办法让jquery最接近()函数与SVG标签内的元素一起工作?
谢谢
答
在$
结束语一D3的选择是无效的。使用$(this)
而不是$(f)
。点击处理程序中的this
关键字被设置为所点击的DOM元素,这正是您所需要的。
非常感谢你的工作。 :) – cgadjoro