推 s25g5d4:有看沒有懂 有code嗎 10/30 22:14
我弄一個範例網頁,等一下
※ 編輯: PTTLSboy 來自: 123.0.232.61 (10/30 22:37)
→ SansWord:看不太懂,可是直覺上覺得你要一個清除 listener的方法 10/30 23:53
→ PTTLSboy:對對..可以這麼說..有辦法清除後來執行的function嗎 10/31 00:20
http://myphpdiary.com/test.php
問題大概如同這個網頁描述的
※ 編輯: PTTLSboy 來自: 123.0.232.61 (10/31 00:56)
→ b12031106:我想你可能要先弄清楚你的change_bg到底在做什麼 10/31 01:50
change_bg裡面做的事情是傳遞ID值進去做一些滑鼠事件
※ 編輯: PTTLSboy 來自: 123.0.232.61 (10/31 02:24)
因為BLOCK裡的<img class='img1'是後來程式產生的,所以一開始執行的change_bg('img1')
只對原本的有用,BLOCK裡的就沒反應,所以當圖片產生的時候就補change_bg給它
有沒有方法可以解決這個問題:block裡的img不要重新給它change_bg,用一開始的change_bg
※ 編輯: PTTLSboy 來自: 123.0.232.61 (10/31 02:32)
※ 編輯: PTTLSboy 來自: 123.0.232.61 (10/31 02:33)
→ tyf99:簡單一點就設個 global flag,func 執行就 +1 10/31 20:15
→ tyf99:onclick時flag歸零。 func先檢查flag,大於0就直接return 10/31 20:18
謝謝兩個,用了b12031106大的jquery .on解決了..
出乎意料的簡單,而且有效!
※ 編輯: PTTLSboy 來自: 123.0.232.61 (10/31 21:11)
推 Darkland:其實 jQuery也可以用 Element 當 selector 11/01 23:42
→ Darkland:所以你的 change_bg 改成也接受傳 element 的話也可以解 11/01 23:43
請問是我誤會element意思嗎? 之後產生的還是不會alert
change_bg($('.img1')); //傳入這樣嗎
function change_bg(id){
id.click(function(){
alert(1);
});
}
※ 編輯: PTTLSboy 來自: 123.0.232.61 (11/02 00:44)
→ b12031106:之後產生的element並沒有包在你一開始的$('.img1')裡面 11/02 01:10
→ b12031106:去查一下.on跟一般的.click之類的方法有什麼不一樣 11/02 01:12
→ b12031106:應該就會懂了 11/02 01:12
→ Darkland:var img=document.createElement('img'); 11/02 13:40
→ Darkland:change_bg(img); 11/02 13:41
→ Darkland:function change_bg(element){$(element).click(...)}; 11/02 13:41