作者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