AJAX加载内容后加载脚本?

我正在使用jQueryYQL来获取网站的内容并在页面上显示某个元素,在本例中是table元素。 我还使用jQuery QuickSearch插件设置了搜索function。

这很好用,现在问题…

似乎在AJAX内容getter获取内容之前加载搜索脚本。 我认为该脚本然后缓存数据,因此搜索更容易。 因为它是在内容存在之后加载的,所以它不搜索任何东西而且它不起作用。 有没有办法在加载AJAX内容加载搜索脚本?

我已经尝试通过jQ中的ready函数调用它:

 $(document).ready(function() { 

但是在内容加载之前仍然会加载。 我的AJAX脚本如下:

  $(document).ready(function () { var container = $('#content'); function doAjax(url) { if (url.match('^http')) { $.getJSON("http://query.yahooapis.com/v1/public/yql?"+ "q=select%20*%20from%20html%20where%20url%3D%22"+ encodeURIComponent(url)+ "%22&format=xml'&callback=?", function (data) { if (data.results[0]) { var fullResponse = $(filterData(data.results[0])), justTable = fullResponse.find("table"); container.append(justTable); } else { var errormsg = '

Error: could not load the page.

'; container.html(errormsg); } }); } else { $('#content').load(url); } } function filterData(data) { data = data.replace(/]*>/g, ''); data = data.replace(/[\r|\n]+/g, ''); data = data.replace(//g, ''); data = data.replace(/]*>[\S\s]*?/g, ''); data = data.replace(/]*>[\S\s]*?/g, ''); data = data.replace(//, ''); data = data.replace(/]*>/g, ''); return data; } doAjax('url_goes_here'); });

不确定我真的得到了问题,但是在内容加载Ajax之后加载脚本你可以这样做:

 $.ajax({ url: url, data: data, success: function() { //success loading content }, error: function() { //error loading content }, complete: function() { $.getScript("/scripts/mysearchscript.js", function() { alert('loaded script and content'); }); } }); 

“如果在初始化DOM之后调用.ready(),则会立即执行传入的新处理程序。” – http://api.jquery.com/ready/

编辑

对不起,我想我可能误解了你的问题。 你是说搜索尝试在表完全加载之前搜索? 我认为你在页面完成加载之前尝试搜索。 您是否尝试使用附加到.load()的回调函数,或者只是在container.append()之后?

加载后

 $('#content').load(url,callSearchFunction()); 

你可以在追加后做得更简单

  container.append(justTable); callSearchFunction(); 
 $('.container').load('yourPage.html',function(){ //Do whatever you want here }); 

你可以在jquery方法.load()上传递一个像参数这样的匿名函数

http://api.jquery.com/load/

该函数将在ajax请求完成时执行