我在javascript中有一个函数,它包含一个ajax调用。我们称之为search();
然后我在onKeyUp上发生了一个事件。
在onKeyUp事件中,我有一个enterPressed()函数。
我希望在搜索()结束后调用此函数。
我认为回调在这里无济于事。
这是我的代码:
function search () {
...
}
ed.onKeyUp.add(function (ed, e) {
if (e.keyCode == 13)
enterPressed();
}
function enterPressed() {
...
}
答案 0 :(得分:2)
回调是前进的方向。
或者:
return
。(这假设从keyup函数调用enterPressed
是重要的。如果keyup代码的包含是红色鲱鱼,只是表明你也想在其他时间调用它以及然后直接用它作为回调)。
答案 1 :(得分:2)
您将使用success / complete回调在完成时调用您的函数。类似的东西:
$.ajax({
...
success: enterPressed,
...
:);
答案 2 :(得分:0)
完成第一个函数后,将第二个函数作为参数传递给第一个函数,并在最后执行它。
function search (callback) {
// your code here
callback();
}
search(function () {
ed.onKeyUp.add(function (ed, e) {
if (e.keyCode == 13) {
enterPressed(); }
}
});
答案 3 :(得分:0)
试试这个:
var searchDone = false;
function search () {
...
searchDone = true;
}
ed.onKeyUp.add(function (ed, e) {
if (e.keyCode == 13)
enterPressed();
}
function enterPressed() {
if (!searchDone) {
setTimeout(enterPressed,100);
return;
}
...
}
显然你迟早会检查searchDone是否真的...但你知道你现在可以做些什么:)