Re: [問題] .html()之後 的事件
※ 引述《sowhysowhat (sowhysowhat)》之銘言:
: $("#a > img").click(){
: $("#a").html("<img src='xxxxx' id='b'>");
: }
如果我沒猜錯這應該是 jQuery的寫法 (建議下次討論標註)
而且其實這兩個地方的寫法好像都不太對吧?
還是 jQuery 有改過event binding的宣告式@_@
我認知中的寫法應該要是
$("#a > img").click(function(){
$("#a").html("<img src='xxxxx' id='b'>");
});
: $("#b").click(){
: alert("it works~!!");
: }
: 為什麼像上述這樣用.html()或.append()上去的東西
: 沒辦法對他們去偵測事件呢?
: 而這樣卻可以?不太明白阿=''=
: $("#a > img").click(){
: $("#a").html("<img src=xxxxx id='b'>");
: $("#b").click(){
: alert("it works~!!");
: }
: }
先不論語法問題 , 還有一個要注意的地方.
那就是時間點的問題 ,
因為在你的 #b 根據事件描述是在 #a 被點擊之後才動態產生的 ,
也就是很有可能在你宣告 #a 的click 時仍尚未出現 ,
你緊接著在#a 之後宣告 #b的click事件 ,
那時候的 $("#b") 很有可能是空集合 , 也就是找不到任何 id=b的元素.
js操作上很講究時間點 , 而另一種寫法因為是寫在#a的clict中 ,
則能確保 , 是在 #b被建立出來之後才對 #b進行綁定.
當然你可以透過 1.3新增的 live 來針對某些條件的元素 ,
做一致性的偵測綁訂 , 不過這樣多少會增加額外的cost ,
建議從流程設計的角度方面去思考為佳.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 116.59.168.233
→
08/29 07:54, , 1F
08/29 07:54, 1F
推
09/03 12:28, , 2F
09/03 12:28, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章