我有一个场景,我希望在特定的第 3 方 js 函数完成执行后执行我的函数。
我无法编辑源代码,loadOne
但是我可以添加/覆盖我newLoadOne
的 as on click 监听器。所以我可以loadOne
代表它执行并使用它返回的数据执行我的代码。
现在,我在方法的异步回调返回之前newLoadOne
打印console.log 。loadOne
HTML
<select id="option1">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<select id="option2">
<option>One</option>
<option>Two</option>
<option>Three</option>
</select>
<input id="submit" type="button" value="Submit" />
JavaScript
function loadOne(){
someAsyncXhrMethod(with_its_own_parameters);//its own xhr method with aync callbacks
}
function newLoadOne(){
(function(){loadOne(); console.log('done');}());
}
function optionschanged(){
console.log('options changed');
}
function bEvents(){
$('#option1').change(optionschanged);
$('#option2').change(optionschanged);
$('#submit').bind('click', newLoadOne); //this is where i replace the call to loadOne with my newLoadOne
}
$(document).ready(function () {
console.log('ready');
bEvents();
});
这是jsFiddle 链接- 注意:源代码中的 $.ajax 调用是为了解释该方法loadOne
具有一些异步回调。所以$(document).ajaxComplete
不是答案。