jquery 函数中的选择器
Selector in jquery on function
对于多个 raphael (svg) 节点,我定义了一个 css class。所有这些节点都可以参考这个class来选择,例如:
console.log($(':raph(nodecss)'));
给出了所有节点的概览。供您参考,节点是动态创建的
现在我想使用以下代码在事件处理程序上定义一个 (jquery):
$(document).on("mousedown", SELECTOR, (function(evt) {
console.log(this);
}).bind(this));;
其中应该给出被点击的实际节点。对于选择器,我使用了以下选项:
- $(':raph(nodecss)')
- "$(':raph(nodecss)')"
- ':raph(nodecss)'
所有都不起作用,原因不同:
- Console.log(this)指的是window而不是点击的节点
- 未捕获错误:语法错误,无法识别的表达式:$(':raph(nodecss)')
- 对于动态创建的节点,点击事件根本不会触发(无响应),对于在页面加载时创建的节点,这有效
应该使用什么作为 on-function 中的选择器,以便在单击节点时触发事件,这会给出已单击的实际节点?
更正式地说,这应该有效:
$(document).on("mousedown", ':raph(nodecss)',
function(evt) {
console.log(evt.target);
}
);
您实际上应该可以使用 this
而不是 evt.target
,但是 evt.target
即使函数绑定到错误的对象(例如 window) - 我相信你的第一个案例发生了什么。
对于多个 raphael (svg) 节点,我定义了一个 css class。所有这些节点都可以参考这个class来选择,例如:
console.log($(':raph(nodecss)'));
给出了所有节点的概览。供您参考,节点是动态创建的
现在我想使用以下代码在事件处理程序上定义一个 (jquery):
$(document).on("mousedown", SELECTOR, (function(evt) {
console.log(this);
}).bind(this));;
其中应该给出被点击的实际节点。对于选择器,我使用了以下选项:
- $(':raph(nodecss)')
- "$(':raph(nodecss)')"
- ':raph(nodecss)'
所有都不起作用,原因不同:
- Console.log(this)指的是window而不是点击的节点
- 未捕获错误:语法错误,无法识别的表达式:$(':raph(nodecss)')
- 对于动态创建的节点,点击事件根本不会触发(无响应),对于在页面加载时创建的节点,这有效
应该使用什么作为 on-function 中的选择器,以便在单击节点时触发事件,这会给出已单击的实际节点?
更正式地说,这应该有效:
$(document).on("mousedown", ':raph(nodecss)',
function(evt) {
console.log(evt.target);
}
);
您实际上应该可以使用 this
而不是 evt.target
,但是 evt.target
即使函数绑定到错误的对象(例如 window) - 我相信你的第一个案例发生了什么。