2016-05-07 38 views
0

对于多个raphael(svg)节点我定义了一个css类。所有这些节点都可以通过参考该类来选择,例如:jquery中的函数选择器

console.log($(':raph(nodecss)')); 

给出了所有节点的概述。为了您的信息的节点是动态创建

现在我想用下面的代码来定义事件处理程序(jQuery的):

$(document).on("mousedown", SELECTOR, (function(evt) { 
console.log(this); 
}).bind(this));; 

在此应该给被点击其实际节点。对于选择器我用以下选项:

  1. $( ':拉斐(nodecss)')
  2. “$( ':拉斐(nodecss)')”
  3. “:拉斐(nodecss) “

所有不工作,因为不同的原因:

  1. CONSOLE.LOG(这)是指窗口,而不是点击节点
  2. 未捕获的错误:语法错误,无法识别的表达式:$(':raph(nodecss)')
  3. 对于动态创建的节点,点击事件根本不会触发(无响应)这个工作的页面

什么应该用作on-function中的选择器,以便在点击一个节点时触发该事件,并且这给出了已经被点击的实际节点?

+0

为什么不能使用'$(':raph(nodecss)')'作为SELECTOR并使用'evt.target'而不是'this'?为什么bind()? – Tibrogargan

回答

1

更正式地说,这应该工作:

$(document).on("mousedown", ':raph(nodecss)', 
    function(evt) { 
     console.log(evt.target); 
    } 
); 

你实际上应该能够使用this代替evt.target,但是evt.target应该工作,即使函数被绑定到了错误的对象(比如窗口) - 我相信你的第一个案例发生了什么。