Ajax 板


LINE

※ 引述《flirmnave (焰離雨星)》之銘言: : 我要在動態新增的物件上綁定 click 事件 : 一開始是使用 blind 但一直都沒辦法出現效果 : 搜尋過後 發現 動態新增的物件必須用 on 去綁定 : 下面這張是未新增的網頁結構 : http://i.imgur.com/rULb63i.jpg : 然後動態新增了10個 li : http://i.imgur.com/QK4F0Ch.jpg : 而 jQuery 寫成這樣 : var SideItemzed = $('#content li'); : $(SideItemzed).on("click",function(){ : var SideItem = $(event.currentTarget); 這event倒底哪裡來的... 你下面會成功是因為有把參數傳給event 這邊event根本就不存在當然不成功... 還有SideItemzed本身已經是jQuery Object了 直接寫SideItemzed.on(...)這樣就行了 多一次selector只是浪費效能 另外如果是click事件的話 可以直接用SideItemzed.click(function to bind)來綁事件 可以不用用on來綁(雖然實際上一樣啦) : SideItem.addClass('active'); : }); : 但發現他還是沒有觸發事件... : 後來又把 jQuery 改成 : var SideItemzed = $('#content li'); : $(document).on("click", 'SideItemzed', function(){ : var SideItem = $(event.currentTarget); : SideItem.addClass('active'); : }); 這邊更不解釋了 程式碼越來越沒效率... : 但還是沒有動作 : 請問各位 我是哪個觀念搞錯了呢?? : ========================================= : 囧... 剛剛PO完不久 我就試出來了 : 說一下我的解決方法 : 因為我那新增的物件是從 json 那裡接收資料的 : 所以我預先幫它加上 class = "newItem" : 而跑出來的網頁就會變成 : http://i.imgur.com/N4DWoGv.jpg : 然後 jQuery 改成 : $(document).on('click', '.newItem', function(event){ : var SideItem = $(event.currentTarget); : SideItem.addClass('active'); : }); 這邊不如用 $(".newItem").click(function(event){ ... }) : 這樣點選後就會有反應了 : http://i.imgur.com/cn2zkfO.jpg : 供各位如果有遇到問題參考 : 或者有更好的方法 : 也請不吝指教 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.216.102 ※ 編輯: danny8376 來自: 140.115.216.102 (10/04 19:02)
1F:推 flirmnave:感謝指點 看來我還是得再多看一些文件才行... 10/04 19:07
2F:→ CaptainH:用.click()不會套用到之後動態新增的物件上 10/04 19:17
3F:→ CaptainH:所以原po才會用.on()...雖然還是用錯 10/04 19:17
4F:推 flirmnave:嗯... 可以請樓上指點一下我的錯誤嗎? 10/04 19:22
5F:→ flirmnave:然後 如果照樓主所說的 改成 10/04 19:23
6F:→ flirmnave:$(".newItem").click(function(event){ 10/04 19:23
7F:→ flirmnave: var SideItem = $(event.currentTarget); 10/04 19:23
8F:→ flirmnave: SideItem.addClass('active'); 10/04 19:23
9F:→ danny8376:不管on還是click對新增的都無用 10/04 19:24
10F:→ danny8376:on能夠有類似的結果是要靠額外的selector去做filter 10/04 19:24
11F:→ flirmnave:}); 這樣反而是沒有反應的耶? 10/04 19:24
12F:→ danny8376:但那就不是bind在li上面 而是他的父DOM 10/04 19:25
13F:→ danny8376:(雖然原PO綁在document上就是...) 10/04 19:25
14F:→ danny8376:先確定一下你on是在li生成前還後 10/04 19:26
15F:→ danny8376:如果要在生成後還能用的話 10/04 19:26
16F:→ danny8376:$('#content').on("click", "li", function(event){ 10/04 19:27
順便解釋一下 這行就是對id=content的DOM綁定click事件 然後告訴額外要求 只針對tag = li的DOM來觸發click事件 結果就是#content底下所有不管啥時出現的li都會觸發到#content上的那個click 這樣說好像不大對 應該說這click事件會因要求所以把事件繼續傳給li才去觸發事件 觸發的DOM仍然是li本身 ※ 編輯: danny8376 來自: 140.115.216.102 (10/04 19:33)
17F:推 flirmnave:喔喔 我明白了 感謝指導~ 10/04 19:35
※ 編輯: danny8376 來自: 140.115.216.102 (10/04 19:39)
18F:推 qwer820404:click 跟 on 用法有差哦 10/04 21:36







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP