Jquery 等待.html()加载完毕,然后执行某些操作
我见过一些线程,它们都说html()是一个同步事件,所以您只需要将代码放在它之后,但是我的所有警报都会在显示内容之前出现 我已恢复为警报,因为我想在加载的内容上添加的单击事件不起作用Jquery 等待.html()加载完毕,然后执行某些操作,jquery,Jquery,我见过一些线程,它们都说html()是一个同步事件,所以您只需要将代码放在它之后,但是我的所有警报都会在显示内容之前出现 我已恢复为警报,因为我想在加载的内容上添加的单击事件不起作用 var URL = '@Url.Content("~/Controller/_Action")'; $.ajax({ url: URL, type: 'POST', success: function (partial
var URL = '@Url.Content("~/Controller/_Action")';
$.ajax({
url: URL,
type: 'POST',
success: function (partialViewResult) {
$("#SideBarContent").html(partialViewResult);
alert('first')
}
}).done(function () {
alert('second');
})
alert('third');
所有三个警报都会弹出,然后加载内容
我也试过,
var d1 = $.Deferred();
$.when(d1).then(function () {
alert('loaded');
});
d1.resolve(LoadSideBarContent(url));
<script type="text/javascript">
function LoadSideBarContent(url) {
$("#SideBarContent").html();
$("#SideBarContent").load(url);
};
</script>
var d1=$.Deferred();
$.when(d1).then(函数(){
警报(“已加载”);
});
d1.解析(LoadSideBarContent(url));
函数LoadSideBarContent(url){
$(“#SideBarContent”).html();
$(“#侧边栏内容”).load(url);
};
因为我使用的是partialview,所以有什么变化吗
但我的所有提醒都会在显示内容之前出现
您看到警报的事实并不意味着内容不在其中/未发送以进行呈现
警报会阻止一切
当您将某些内容写入屏幕时,它不会直接写入屏幕。它被发送以进行渲染(!)。这是一个巨大的差异
无论如何-如果要查看内容是否存在,应执行以下操作:
$.ajax({
url: URL,
type: 'POST',
success: function (partialViewResult) {
$("#SideBarContent").html(partialViewResult);
console.log('first')
}
}).done(function () {
console.log('second');
})
console.log('third');
此外-不清楚您在以下方面尝试了什么:
d1.resolve(LoadSideBarContent(url));
var d1 = $.Deferred();
$.when(d1).then(function () {
alert('loaded');
});
d1.resolve(LoadSideBarContent(url)); //<-- with what value you want to resolve the Deffered object ?
<script type="text/javascript">
function LoadSideBarContent(url) {
$("#SideBarContent").html(); //<---What's this ?
$("#SideBarContent").load(url);
};
</script>
d1.解析(LoadSideBarContent(url));
var d1=$.Deferred();
$.when(d1).then(函数(){
警报(“已加载”);
});
d1.解析(LoadSideBarContent(url))//必须测试load(url,complete)
callback?你的意思是像$(“#SideBarContent”).load(url,{id:null/*parameters*/},函数(text,status,xhr){alert('logged');});是的,当侧栏呈现时,我有一个onclick事件应用于partialview中呈现的按钮,但是当单击按钮时,他们单击的事件没有触发,所以我尝试返回跟踪以使用警报,以查看事件调用后的html呈现是否正确。console.log的问题是,它会在局部视图中立即出现,因此我看不到一个在另一个之前工作…@JQuery很抱歉,我没有理解你的意思。请使用jsbin.com将您的问题简化为一个工作示例。我想调用一个局部视图并在侧栏中呈现html。这上面有按钮。渲染完成后,我想应用一个脚本,以便在单击a按钮时触发一些自定义逻辑。但是,jquery没有应用于按钮,所以我认为这是因为脚本是在html之前加载的