我见过几个帖子,他们都说html()是一个同步事件,所以你只需要把代码放在它之后,但是在显示内容之前我的所有提醒都会出现。
我已经恢复为警报,因为我想在加载的内容上点击的点击事件无效。
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>
有什么变化,或者这是不同的,因为我使用的是部分视图?
答案 0 :(得分:2)
但我的所有提醒都会在显示内容之前显示
您看到提醒的事实并不意味着内容不在其中/已发送给您。
警报只会阻止一切。
当您在屏幕上写东西时,它不会直接写入屏幕。它被发送以呈现(!)。这有很大的不同。
无论如何 - 如果你想看看内容是否存在,你应该这样做:
Use multipart/form data for POST
另外 - 目前还不清楚你尝试做什么:
$.ajax({
url: URL,
type: 'POST',
success: function (partialViewResult) {
$("#SideBarContent").html(partialViewResult);
console.log('first')
}
}).done(function () {
console.log('second');
})
console.log('third');