我需要爲動態加載的元素創建on Click功能。此元素的ID位於變量$element
中。該ID存儲一個字符串。我把它傳遞給.on
事件處理程序是這樣的:jQuery .on事件不適用於變量選擇器
... .on("click", '"'+$element+'"', function() { ...
它不工作,並給出了一個錯誤Uncaught Error: Syntax error, unrecognized expression: "#2"
(見Case 1 JSFiddle)。 #2
是元素的ID。
然後我嘗試它包裹在這樣的功能:
... .on("click", function() {'"'+$element+'"'}, function() { ...
但它似乎把整個DOM成一個可點擊的元素(見Case 2 JSFiddle)。爲什麼...?
最後,Case 3 JSFiddle顯示我想要的行爲:如果用戶點擊與ID #2
元素,有事,如果她點擊該元素具有ID #3
或其他地方,沒有任何反應。當選擇器作爲變量傳遞時,我無法讓它工作。
Case 1 JSFiddle給出了一個奇怪的錯誤。
Case 2 JSFiddle單擊「a」或「b」,「a」將變成紅色。
Case 3 JSFiddle是我所追求的。點擊「a」,它變成紅色,點擊「b」沒有任何反應。
你輸出''「#2」''作爲一個字符串,這是無效的。此外,ID不應以數字開頭。只需寫:'.on(「click」,$ element,function(){...'因爲'$ element'已經是一個字符串 – Alex
https://jsfiddle.net/p4ursy9r/5/ – Alex
@Alex https:/ /www.w3.org/TR/html5/dom.html#the-id-attribute它們可以 – epascarello