Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery在自定义函数中调用回调函数_Jquery_Function_Callback - Fatal编程技术网

Jquery在自定义函数中调用回调函数

Jquery在自定义函数中调用回调函数,jquery,function,callback,Jquery,Function,Callback,我有一个自定义函数,我想给它添加一个回调函数,我查看了其他问题,但我真的找不到问题的答案。所以基本上看起来是这样的: function myfunction() { // something } function myfunction(cb) { cb(arg1, arg2); } 我有一个不同的函数,我想作为回调触发它,最终我想像这样调用myfunction: myfunction(callback()); 有人能告诉我怎么做吗 function myfunction(cal

我有一个自定义函数,我想给它添加一个回调函数,我查看了其他问题,但我真的找不到问题的答案。所以基本上看起来是这样的:

function myfunction() {
 // something 
}
function myfunction(cb) {
    cb(arg1, arg2);
}
我有一个不同的函数,我想作为回调触发它,最终我想像这样调用myfunction:

myfunction(callback());
有人能告诉我怎么做吗

function myfunction(callback) {
 // something

 callback();
}

myfunction(callback);

请注意,我不是调用回调函数,而是将其作为函数引用传递给我的函数。然后,我在函数末尾或您想在任何地方调用它。

您可以这样调用它(将回调函数作为参数传递):

请注意,当作为参数传递对函数的引用时,函数名后面没有括号。这不会调用函数,只是传递一个对它的引用,以后可以从自定义函数中调用该引用

您可以定义函数,然后在其中调用回调函数,如下所示:

function myfunction() {
 // something 
}
function myfunction(cb) {
    cb(arg1, arg2);
}
注意,有多种方法可以从自定义函数中实际调用回调函数。如果您只需要正常调用它,而不关心
参数,则可以使用:

cb();
如果要将
this
参数设置为某个值,可以使用以下选项:

cb.call(thisArg, arg1, arg2);
cb.apply(thisArg, argArray);
test(rand_gyumolcs, link, callback);
如果要传递当前参数或传递参数数组并设置
参数,可以使用以下方法:

cb.call(thisArg, arg1, arg2);
cb.apply(thisArg, argArray);
test(rand_gyumolcs, link, callback);
关于和的参考资料


您当前的代码在此区域中存在javascript错误:

test(rand_gyumolcs, link, callback){
    callback();
}; 
这是不合法的。我不知道你想做什么,但这看起来像是一半的函数声明和一半的函数调用。如果您只想调用test函数,可以使用以下方法:

cb.call(thisArg, arg1, arg2);
cb.apply(thisArg, argArray);
test(rand_gyumolcs, link, callback);

在测试内部,如果希望在动画完成后调用回调函数,则必须钩住动画的完成函数,然后调用回调。

下面是一个回调示例,返回值也包含输入参数:

function test2(arg1, arg2, callback) {
  var result = callback(arg1, arg2);

  alert('arg1=' + arg1 + ', arg2=' + arg2 + ', result=' + result);
}

test2(1, 2, function(a, b) { return a + b; });

这是在javascript中使用回调的另一种方法,该方法确保您可以根据回调的结果安全地执行条件

// Function call.

validateCondition(function(isValid){
   if(isValid) {
      executeThisFunction();
   } else {
     // Do something else.
   }
});


function validateCondition(callback) {
    var isvalid = true;
    
    // some calculation to check isValid.

    callback(isValid); 

}

似乎对我不起作用jfriend00。。。这可能是我的错,但你能看一下吗?代码有点乱,我知道,我不太擅长jquery。。。如果你能看到。。我希望右边的结果移动,测试函数也会这样做,但我还有一个回调函数,可以将它们移回原来的位置。请在原始问题中发布相关代码,或者给出一个非常具体的描述,说明代码在页面中的位置以及如何触发它。您发布了一个包含五个嵌入式脚本页面的网页,我不知道您询问的是哪段代码。对不起,您的权利,但发布代码有点长,无论如何,谢谢……动画完成后,您可以调用的唯一地方是对动画使用
完成功能。查看,您将看到最后一个参数是一个回调函数,在动画完成时将调用该函数。您需要将该回调函数作为参数提供给
gyum_mozgas2
函数,然后将其传递给该函数中的
.animate()
调用。
animate()
函数将在动画完成时调用它。@Keith…您需要传递在声明myfunction时需要运行的实际函数:即myfunction(function(){alert“hello”;});非myfunction(回调);