2016-07-24 149 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