[問題] 增加內容後套用function

看板Ajax作者 (還在想)時間15年前 (2009/07/10 19:32), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
我有兩個PHP網頁,以及一個.js的JavaScript語法檔案 其中一個PHP檔是主要的PHP網頁檔 有關於外觀,或那個.js語法檔案都是掛載在那一個網頁上 在那個語法檔內,我寫了一小段jQuery的程式 主要是當使用者按下原先主畫面上的某個按鈕時 會使用jQuery.post()方法 去跟另外一個PHP檔案傳送該按鈕的要求 然後將更改過後的資料傳回主PHP檔,用 jQuery("#id").html() 的方式 將原本就有內容的某塊div內容刷新,但不切換網頁 想讓它看起來都在同一頁完成,不會有整頁刷新的情況出現 基本上做到目前這樣是成功了 但有問題的是後面 我刷新後的資料同樣會有跟上面類似的格式 而我希望它能套用跟上面已完成部分同樣的function 但卻不知道怎麼樣套用上去 我剛剛試著將含有jQuery.post()方法的函式寫成具名的函數 (邊看網頁跟書本邊寫的,大家的範例似乎都是寫成不具名的) 然後想在 jQuery("#id").html() 完成後的下一行執行 jQuery("input").bind() 的方法 但這樣好像不行,它會跑成無窮迴圈的樣子... js的程式碼部分長這樣: jQuery(document).ready(function(){ jQuery("input").bind("click",function(){ var da = jQuery(this).val(); var typ = jQuery(this).attr("name"); jQuery.post("/c2.php",{dType: typ ,Num: da}, function(res){ jQuery("#sel").html(res); //jQuery("input").bind("click",clkEvent()); } ); }); }); //的部分是我剛剛說到,原先想的做法 將原本要在ready時bind的函式寫成有名字的 再等之後來bind 但或許是我漏了什麼重要的點 當我那樣寫時會變成無窮迴圈 (之前為了判斷程式有沒有跑進去而寫了個alert提式,會像視窗炸彈一樣關不掉...) 再來我不使用bind()方法(ready時還是會使用,之後不用而已) 而同樣寫成具名的函式後,在第二個次php檔輸出時就多寫了 onClick = "clkEvent()" 結果發現它的alert通知訊息有跑出來,但沒有產生我要求的變化 甚至連上面原本可以用的也變成只剩下嘴砲(alert),更新功能不見了 我想請問,有什麼方法可以在讀入其他來源的html資訊,並加入本身後 將新加入的部分,符合要求的標籤都加上同樣的程式碼呼叫? 我不知道為什麼我的bind那樣寫會變無窮迴圈 本來以為function只有在有人呼叫觸發時才會動作,我搞錯了嗎? 請問要怎麼改才好呢? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.233.185 ※ 編輯: Peruheru 來自: 118.168.233.185 (07/10 19:34)

07/10 19:44, , 1F
依我看你可以試著用live
07/10 19:44, 1F

07/10 19:46, , 2F
$("input").live("click",function(){...});寫在ready裡
07/10 19:46, 2F

07/10 19:49, , 3F
原本的bind("click",...)就不要了
07/10 19:49, 3F

07/10 20:26, , 4F
原來如此,這的確是相當棒的方法呢
07/10 20:26, 4F

07/10 20:26, , 5F
不過我原本使用的jquery套件剛好不能用,剛更新XD
07/10 20:26, 5F

07/10 20:26, , 6F
謝謝你的回答!
07/10 20:26, 6F
文章代碼(AID): #1ALoQrqW (Ajax)