Jquery函数返回订单问题
Jquery function return order issue
在JavaScript中,我第三次调用相同的函数,但每次返回顺序都会更改。你可以在下面看到我的代码。有时page1.html首先加载有时page2.html
我该如何解决这个问题?
提前感谢
$(document).ready(function () {
$("#button").click(function () {
addHtml('page1');
addHtml('page2');
addHtml('page3');
});
});
function addHtml(url) {
if ($("#" + url).length == 0) {
$.get(url+'.html', function (result) {
$('.divtest').append(result);
});
}
};
这是因为使用http调用获取页面html是异步的,意味着无阻塞。因此,这取决于响应时间,哪个页面将首先添加。
您可以返回promise return $.get(url+'.html')
,然后按顺序将它们链接起来。
function addHtml(url) {
return $.get(url+'.html');
};
$("#button").click(function () {
addHtml('page1')
.then(function(result){
$('.divtest').append(result);
return addHtml('page2');
})
.then(function(result){
$('.divtest').append(result);
return addHtml('page3');
})
.then(function(result){
$('.divtest').append(result);
})
});
一个简单的解决方案:
$(document).ready(function () {
$("#button").click(function () {
addHtml('page1', function(){
// page 1 added
addHtml('page2', function(){
// page 2 added
addHtml('page3', function(){
// All HTML added
});
});
});
});
});
function addHtml(url, callback) {
if ($("#" + url).length == 0) {
$.get(url+'.html', function (result) {
$('.divtest').append(result);
callback();
});
}
};
相关文章:
- 贝宝表单问题的单选按钮选择
- Javascript测验,有4个问题.单选按钮+继续按钮
- Flexislider缩略图单击问题-中间问题
- Jquery 验证表单问题,同时拆分 2 个屏幕
- JSTREE - 重命名功能问题(单击重命名后,节点上的文本输入不接受更改)
- 根据Google Apps Script中的答案创建表单问题
- 似乎更多问题(单击查看更多 5-10 次后操作速度变慢)
- 使用 Ajax 的联系表单问题
- 使用图像提交表单问题
- 提交与 API 交互的表单问题
- 在按钮上运行Jquery代码的问题单击我的向导步骤Jquery代码
- 使用javascript提交表单问题
- 隐藏/显示验证表单问题
- jQuery输入表单问题
- 动态内容的危险刷单问题
- jQuery/JS表单问题
- CRM 2011 -动态更改表单问题- JS错误(无法执行代码…)
- 提交表单问题:TypeError: this.表单为空
- HTML嵌套表单问题
- AngularJS表单问题