作者tomin (Schrödinger's cat)
看板Ajax
標題Re: [問題] 使用ajax時,回應的html只能append一次??
時間Tue Jan 26 02:13:26 2010
※ 引述《pillowYUI (枕由衣)》之銘言:
: <script language="javascript">
: $(function(){
: var html = $.ajax({
: type:"GET",
: url:"a.php",
: data:"給a.php的參數",
: async: false
: }).responseText;
: $("#content_main").append(html);
: });
: function click_f(){
: $("#sw_loc").change(function(){
: var sw_con = $('#sw_loc :selected').val();
: var html2 = $.ajax({
: type:"GET",
: url:"a.php",
: data: sw_con ,
: async: false
: }).responseText;
: //alert(html2);
: //以上印出html2內容
: $("#content_main").empty();
: $("#content_main").append(html2);
: });
: }
: </script>
: <body onLoad="click_f();">
: <div id="content_main"></div>
: </body>
: html2為a.php回傳的資料(即下拉式選單的html),#sw_loc為a.php所產生的下拉式
: 選單。
: 若把紅色的地方刪掉,則能確定每次對a.php的要求的內容(即html2)都正確無誤。
: 想請教各位是否是我對append的使用錯誤,還是其他的問題導致只有第一次選擇
: option時執行正確??
問題不在append 而是change只在body onload時綁定那一次
之後動態load進來時 就沒有再綁定change了
有兩個解法
1.
用live, jQuery 1.4版支援change了
- $("#sw_loc").change(function(){
+ $("#sw_loc").live("change",function(){
2.
> $("#content_main").append(html2);
click_f();//多加這一行 再綁一次
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.30.140
1F:推 pillowYUI:感謝!!看來我對jQuery了解的還不夠,謝謝你 01/26 12:43
2F:→ TonyQ:與其多瞭解 jQuery , 倒不如多瞭解js 事件處理的模型... 01/26 13:20