Re: [問題] 關於jQuery的html()和apend()

看板Ajax作者 (自立而後立人。)時間13年前 (2012/04/27 13:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《sabiya (別赤腳走路)》之銘言: : 首先感謝版大詳細回答, : 還有版友的回答, : 深刻了解到html()和append()的差異。 : 但是其實在我post callback function最後面, : 除了把<tr>插進來外, : 我是有去把所有的button event handler都移除, : 再對所有的button加上click event handler, : 這樣是不是無論是使用html()或append()都會把event handler bind給所有button? 因為 append 跟 html 是同步的,所以你執行完 html() 或 append() 之後, 下 query 應該就拿的到,所以應該是你說的這樣沒錯。 不過因為我們只有看到你整個範例的一小角,所以很難說為什麼。 建議你給個簡單一點的測試案例,ajax 也不過是給你一個 String , 你把字串拿出來模擬應該就可以達到一樣的結果。 另外你也可以下 table.find("button").click() , 或是 $("button",table) 只對 table 底下的 button 。 實務上我們不太會針對所有 button 去做操作,誤傷的可能性太高了。 : $.post('admin_polling.php', : {method:'polling', docID:docNum, marketID:marketNum, dealID:dealNum}, : function(data){ : var trHtml = '<tr><td>xxxxx</td> : <td> : <button title="doc" class="cancel">結案 : </button> : </td> : </tr>'; : var table = $('#content table'); : table.append(trHtml); : $("button").off(); : $('button').click(clickBtn); : setTimeout("polling()",10000); : },'json'); -- Life's a struggle but beautiful. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.202.140 ※ 編輯: TonyQ 來自: 220.135.202.140 (04/27 13:07)
文章代碼(AID): #1FcYby97 (Ajax)
文章代碼(AID): #1FcYby97 (Ajax)