对于多个拉斐尔(svg)节点,我定义了一个CSS类。可以通过参考此类来选择所有这些节点,例如:
console.log($(':raph(nodecss)'));
给出所有节点的概述。供您参考,节点是动态创建的
现在,我想使用以下代码在事件处理程序上定义一个(jquery):
$(document).on("mousedown", SELECTOR, (function(evt) {
console.log(this);
}).bind(this));;
在其中应给出单击的实际节点。对于SELECTOR,我使用了以下选项:
$(':raph(nodecss)')
“ $(':raph(nodecss)')”
':raph(nodecss)'
由于不同的原因,所有人都无法正常工作:
Console.log(this)引用窗口而不是单击节点
未捕获的错误:语法错误,无法识别的表达式:$(':raph(nodecss)')
对于动态创建的节点,对于在页面加载时创建的节点,单击事件根本不会触发(无响应)
在打开功能中应使用什么作为选择器,以便在单击节点时触发事件,从而提供已被单击的实际节点?
最佳答案
更正式地说,这应该起作用:
$(document).on("mousedown", ':raph(nodecss)',
function(evt) {
console.log(evt.target);
}
);
实际上,您应该可以使用
this
而不是evt.target
,但是即使该函数绑定到错误的对象(例如,窗口),也可以使用evt.target
-我相信您的第一种情况正在发生。