我不是使用全局变量的粉丝,但我无法找到另一种方法来实现我想要做的事情:
window.op_ajax = null;
function addsomestuff_intohtmltable() {
$.when( op_ajax ).done(function ( data ) {
//NOW we are sure that the html-table is created with a div
// thas has class indigo
//Add some content into div with class indigo
});
}
function create_htmltable() {
var op_ajax = $.ajax({
type: 'POST', //etc, data etc...
});
op_ajax.done(function(content_data) {
//Create a table with some html
//In this table we have a div with indigo
});
op_ajax.fail(function(ts) {
alert(ts.responseText);
});
}
上面的代码完成了它必须做的事情。它等待通过ajax调用创建的html表,然后将一些内容添加到另一个函数内创建的html表的一部分中。
我永远都不知道这两个函数何时执行以及它们需要多长时间。我正在使用window.op_ajax来使用deferred对象,但有没有更好的方法(不使用全局变量)?我也在使用其他一些ajax功能。
答案 0 :(得分:1)
对于我所看到的,你可以使用两种方式:
ajax回调:
function addsomestuff_intohtmltable() {
//Add some content into div with class indigo
}
function create_htmltable() {
$.ajax({
type: 'POST', //etc, data etc...
})
.done(function(content_data) {
//Create a table with some html
addsomestuff_intohtmltable(); // << run the second function
});
op_ajax.fail(function(ts) {
alert(ts.responseText);
});
}
这是最佳选择以及如何应对此类问题
另一个用于高级内容,当callBack不够时:
您将listener与父元素上的函数绑定在一起,就像updated
上的<table>
一样,然后使用trigger }运行它p>