作者sowhysowhat (sowhysowhat)
看板Ajax
標題Re: [問題] .html()之後 的事件
時間Thu Aug 27 18:10:01 2009
※ 引述《sowhysowhat (sowhysowhat)》之銘言:
: $("#a > img").click(){
: $("#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~!!");
: }
: }
原本想用以上的方式在同一個頁面下建立 一個2層的menu
點第一層的圖就到那張圖的下一層所屬的圖集
我都用.html()去改變區塊裡面顯示的圖
問題是在要怎麼回到上一層呢-.-?
像一開始假如有A B C D 4張圖
如果點A進去到下一層只顯示a1 a2 a3的圖 包括一個可以回到上一層的圖
如果點B進去到下一層只顯示b1 b2 b3的圖 包括一個可以回到上一層的圖
C和D也是如此
但是用.html()的方式顯示回第一層A B C D之後
像第一篇的問題一樣 此時click A B C D就會沒效果
是原本就不該用這種方法建menu嗎?
還是..有像類似遞迴的東西可以讓.html()寫出來的物件可以同時對他作事件偵測
這樣講不知道問題清不清楚 囧TZ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.116.158
1F:推 KiroKu:通融的辦法是一次把menu寫出來,不要的藏起來就好了 08/27 18:45
2F:→ KiroKu:另一個是找個字串記住上一層 08/27 18:48
3F:→ sowhysowhat:阿 第一個方法應該很簡單 沒想到XD 08/27 19:29
4F:→ sowhysowhat:最後一直在想怎樣貼在每貼一HTML 再執行一次對新物件 08/27 19:30
5F:→ sowhysowhat:事件偵測 剛剛用function遞迴把他搞出來了 不知道想 08/27 19:32
6F:→ sowhysowhat:法對不對XD 每次遞迴裡面的click事件發生後才會再遞迴 08/27 19:33
7F:→ sowhysowhat:下去 所以每更新一次HTML就會貼一次對新物件的偵測 08/27 19:34
8F:→ sowhysowhat:一開始還很天真的想把js code append 到新的html code 08/27 19:36
9F:→ sowhysowhat:不過 還是不懂K大說得第2個方法? 08/27 19:37
10F:推 KiroKu:就找個字串比如$("#b").attr("parent",$("#a").html()); 08/27 21:10
11F:→ KiroKu:要不然就存到cookie裡去啊 08/27 21:11
12F:→ KiroKu:兩層以上就會弄得很複雜 08/27 21:11
13F:推 Peruheru:如果是jQuery $('xxx').live('click',function(){...}); 08/28 11:11
14F:→ sowhysowhat:阿 樓上這東西就是我想要的~! 太棒了=口=+ 08/28 17:22
15F:推 Peruheru:喔喔,能幫上忙就太好了 08/28 21:20
16F:推 JYHuang:不過.live在ie6上還是有點支援上的問題 08/29 01:22