2016-07-24 227 views
-1

我的情況: 我有一個元素,通過AJAX加載搜索結果到元素。 HTMLjquery追加ajax內容後

<input class="search"> 
<div class="search-results"> 
    // in default is empty 
    // after search add <a></a> 
</div> 

jQuery的

$("input.search").change(function() { 
    $(".search-results").append('<div class="searchResultsOverlay"></div>'); 
}); 

如何追加後的結果負載(jQuery的)elemtent? 我嘗試更改輸入,但這是部分解決方案。當我使用.change函數時,append正在輸入或點擊外部輸入,但是如果我將光標放在輸入中,結果會加載並追加等待操作(輸入,單擊)。

如何在Ajax添加內容後調用jQuery?

THX

+0

你有沒有頁面有jquery –

+0

你的代碼中沒有ajax請求,如果有請提供你的ajax調用,並告訴我們爲什麼你沒有把你的代碼放在那裏。 –

+0

ajax加載搜索事件完成後,嘗試將jquery函數放入AJAX成功函數中 – Vaibhav

回答

0

使用jQuery的keyup事件

$(".search").keyup(function() { 
    $(".search-results").html('<div class="searchResultsOverlay"></div>'); 
}); 
0

聲明在阿賈克斯的數據對象的屬性success,它的回調函數。然後做任何在success塊。

$.ajax({ 
    success: function(response) { 
     /* Whatever; response is the server response */ 
    } 
}); 
1

$.ajax()返回與Promise的所有方法的jqXHR對象。因此,當您返回XHR的結果時,您可以使用.done(function(data, textStatus, jqXHR) {})執行代碼。

舉個例子...

$.ajax({ 
    url: "http://fiddle.jshell.net/favicon.png", 
    beforeSend: function(xhr) { 
     xhr.overrideMimeType("text/plain; charset=x-user-defined"); 
    } 
}) 
.done(function(data) { 
    if (console && console.log) { 
     console.log("Sample of data:", data.slice(0, 100)); 
    } 
}); 

這裏有一些可用的其他方法從jqXHR對象

jqXHR.done(function(data, textStatus, jqXHR) {}); 
jqXHR.fail(function(jqXHR, textStatus, errorThrown) {}); 
jqXHR.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) { }); 
jqXHR.then(function(data, textStatus, jqXHR) {}, function(jqXHR, textStatus, errorThrown) {}); 

看看這裏的更多信息,他們每個人:http://api.jquery.com/jquery.ajax/#jqXHR