2016-05-07 42 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應該工作,即使函數被綁定到了錯誤的對象(比如窗口) - 我相信你的第一個案例發生了什麼。