我使用AJAX使用此腳本加載頁面的一部分:jQuery的Ajax調用調用
<script type="text/javascript">
$(document).ready(function(){
$('#btn_new').live('click',function(){
var parameter = 1;
$.ajax({
type: "POST",
url: "new_message.php",
data: {
parameter:parameter,
},
success: function(msg)
{
$("#lib_container").ajaxComplete(function(event, request, settings)
{
$("#lib_container").html(msg);
});
}
});
});
});
</script>
裏面的lib_container DIV我有這個腳本的文本輸入:
<script type="text/javascript">
function searchUsers(str) {
$.ajax({
type: "POST",
url: "users_ajax.php",
data: {
search:str
},
success: function(msg)
{
//console.log(msg);
//$("#users_lst").html(msg.response);
$("#users_lst").ajaxComplete(function(event, request, settings)
{
$("#users_lst").html(msg);
});
}
});
}
</script>
當我在輸入中加載一些文本時,第二個ajax腳本在div中加載了msg變量,然後重新加載了lib_container div。 我已經嘗試了很多方法來防止lib_container ajax觸發器,但它是徒勞的。只需將輸入放入新頁面即可正常工作。
誰能幫我解決這個問題?
謝謝。
你爲什麼要在你的ajax請求已經完成時設置ajaxComplete回調?當成功函數運行即請求結束時,您已經擁有數據,不需要設置ajaxComplete。 –
每次調用'.ajaxComplete()'時,您正在爲_all_ AJAX調用建立另一個處理程序。 – Barmar
順便說一句,'.live()'在jQuery 1.7中被棄用,並在1.9中被刪除。除非你使用舊版本的jQuery,否則你應該用'.on'重新編碼它。 – Barmar