【发布时间】:2015-12-15 07:59:40
【问题描述】:
我想在加载并显示引导对话框后调用我的函数 loadTest()。
$(".btn").on("click", function() {
$.ajax({
type: "POST",
url: '/echo/html/',
data: {
html: '',
delay: 0.1
},
success: function(data) {
$('body').append('<div id="test_modal_wrapper"></div>');
$('#test_modal_wrapper').html(data);
$("#modal").modal({backdrop: 'static'});
$('#modal').on('hidden.bs.modal', function() {
$('#test_modal_wrapper').remove();
});
loadTest(1, 3);
loadTest(2, 2);
loadTest(3, 1);
}
});
});
function loadTest(id, delay) {
$.ajax({
type: "POST",
url: '/echo/html/',
async: false,
data: {
html: '<div class="test-case"><h5>Testing connection '+ id +'</h5></div>',
delay: delay
},
success: function(data) {
$('.modal-body').append(data);
}
});
}
问题是对话框等待所有调用 loadTest() 完成,然后显示带有 loadTest() 函数结果的对话框。
我想要的是首先加载对话框,然后 loadTest() 这样做很神奇。 :)
【问题讨论】:
-
尝试删除
async:false -
为什么对所有 AJAX 请求都使用相同的
url?'/echo/html/'是实际 URL 还是占位符? -
每个函数调用的 URL 都不同。
-
我认为 loadTest() 在对话框后加载。我看到小提琴并根据您的需要工作。现在问题是什么?
-
@adeneo,我想按顺序加载函数调用
标签: javascript jquery ajax asynchronous