以前的答案(都正确)中没有一个适合我的情况:我没有在中使用async
参数,jQuery.ajax()
也没有在返回的内容中包含script标记,例如:
<div>
SOME CONTENT HERE
</div>
<script src="/scripts/script.js"></script>
我的情况是,我要连续调用两个AJAX请求,以同时更新两个div:
function f1() {
$.ajax(...); // XMLHTTP request to url_1 and append result to div_1
}
function f2() {
$.ajax(...); // XMLHTTP request to url_2 and append result to div_2
}
function anchor_f1(){
$('a.anchor1').click(function(){
f1();
})
}
function anchor_f2(){
$('a.anchor2').click(function(){
f2();
});
}
// the listener of anchor 3 the source of problem
function anchor_problem(){
$('a.anchor3').click(function(){
f1();
f2();
});
}
anchor_f1();
anchor_f2();
anchor_problem();
当我点击时a.anchor3
,它会发出警告标志。我通过用click()
函数替换f2调用解决了这个问题:
function anchor_problem(){
$('a.anchor_problem').click(function(){
f1();
$('a.anchor_f2').click();
});
}