Javascript 一旦ajax内容的脚本完全执行,如何手动触发事件?
我正在加载一个带有脚本部分的html页面,通过AJAX呈现JQuery UI。此html页面包含更多数字小部件。在Ajax的success函数中,我通过其jqueryui类名访问UI控件,但没有添加任何类名,即脚本没有执行。如果我在100ms后使用setTimeOut访问相同的文件,它将正常工作 请参阅以下代码:Javascript 一旦ajax内容的脚本完全执行,如何手动触发事件?,javascript,jquery,ajax,performance,jquery-events,Javascript,Jquery,Ajax,Performance,Jquery Events,我正在加载一个带有脚本部分的html页面,通过AJAX呈现JQuery UI。此html页面包含更多数字小部件。在Ajax的success函数中,我通过其jqueryui类名访问UI控件,但没有添加任何类名,即脚本没有执行。如果我在100ms后使用setTimeOut访问相同的文件,它将正常工作 请参阅以下代码: var self = this; $.ajax({ url: url, dataType: "html",
var self = this;
$.ajax({
url: url,
dataType: "html",
cache: true,
success: function (str,sta,xhr) {
$("#samplefile").html(str);
setTimeout(function() {
self.reg($("#samplefile .ui-widgetui"));
},100);
}
});
它工作正常,但我想在没有设置超时的情况下访问它。有人能对此提出建议吗?听起来您可能正在尝试在初始化所有内容之前访问DOM。您是否尝试过将ajax请求的初始化包装到jQuery$document.ready调用中?这可以确保DOM在被触发之前处于初始化状态
更新了queryI,我在document.ready中调用了ajax请求,但只调用了源文件,而不是工作。设置超时显然是一个计时问题,因此任何可能延迟某种初始化的事情似乎都是一个很好的起点。