将.load()更改为$.ajax jQuery
我想禁用/阻止加载页面,直到JS调用完成。我知道唯一的方法是使用将.load()更改为$.ajax jQuery,ajax,function,jquery,load,Ajax,Function,Jquery,Load,我想禁用/阻止加载页面,直到JS调用完成。我知道唯一的方法是使用$。ajax如下: $.ajax({ url: "/acme/confirm_authentication.html", async: false, cache: false, success: function(data) { // loaded } 目前,我正在加载一个包含.load()函数的部分页面,如下所示: var linkUrl = $('.js-dialog--on-load').attr('di
$。ajax
如下:
$.ajax({
url: "/acme/confirm_authentication.html",
async: false,
cache: false,
success: function(data) {
// loaded
}
目前,我正在加载一个包含.load()
函数的部分页面,如下所示:
var linkUrl = $('.js-dialog--on-load').attr('dialog-href') + ' #lga';
showDialogWindow(linkUrl);
function showDialogWindow(linkUrl) {
$('.container').append($("<div>").load(linkUrl, function(){
}).addClass('js-dialog'));
}
var linkUrl=$('.js dialog--on load').attr('dialog-href')+'#lga';
showDialogWindow(链接URL);
函数showDialogWindow(链接URL){
$('.container')。追加($(“”)。加载(链接URL,函数(){
}).addClass('js-dialog');
}
请参见演示:
如何将其转换为$.ajax
调用
请记住,我使用.load()
的原因是,我只能加载网站的一部分(#lga
)。看一下:
我有这个html:
...
<body>
<a href=""> aaa</a>
<p>bbb</p>
</body>
...
asyc:false
通常是邪恶的;-)
您可以尝试以下方法:
function showDialogWindow(linkUrl) {
$.ajax({
url: linkUrl,
async: true,
cache: false,
success: function(data) {
$('.container').append($("<div>"+data+"</div>").addClass('js-dialog'));
}
});
}
函数showDialogWindow(linkUrl){
$.ajax({
url:linkUrl,
async:true,
cache:false,
成功:功能(数据){
$('.container').append($(“+data+).addClass('js-dialog'));
}
});
}
请注意,您丢失了加载中可用的选择器功能@jbi谢谢。为什么
async:false
是邪恶的?@Alex,因为它可能会在很长一段时间内冻结您的浏览器,并提供非常糟糕的用户体验。见@jbi,我明白了。那么在.load()
上使用$.ajax
是没有意义的,对吗?@Alex有区别。请参阅加载文档中的“脚本执行”。加载是上述的实用方法。ajax用于一般情况。只要您想对行为有更多的控制,.ajax就非常有用。
function showDialogWindow(linkUrl) {
$.ajax({
url: linkUrl,
async: true,
cache: false,
success: function(data) {
$('.container').append($("<div>"+data+"</div>").addClass('js-dialog'));
}
});
}