jquery回调
你好,有人可以向我解释一下 jquery 回调的概念吗? 有点坚持这个简单的代码
$(document).ready(function(){
bar('',function(){
foo();
});
});
function foo()
{
alert('foo');
}
function bar()
{
alert('bar');
}
,以便首先执行 foo()
然后执行 bar()
,但是使用上面的代码,只有 foo()
被执行,而 bar
不执行。
这是一个 jsfiddle 链接
hi can someone explain to me the concept of jquery's callback
kinda stuck on this simple code
$(document).ready(function(){
bar('',function(){
foo();
});
});
function foo()
{
alert('foo');
}
function bar()
{
alert('bar');
}
so that foo()
get executed first then bar()
, but with the code above, only foo()
gets executed and bar
does not execute.
here is a jsfiddle link
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
函数是 JavaScript 中的一等成员,因此可以分配给变量并作为参数传递给其他函数。回调函数的思想是,函数接收的一个(或多个)参数是可以在特定条件下调用的函数引用。在您的情况下,您使用两个参数调用
bar
,但从未对bar
中的这些参数执行任何操作。 JavaScript 不会自动回调函数,你作为程序员必须这样做。这可能就是您想要的:
编辑
@Jared 的建议肯定更有意义 - 将
if(b)
更改为if(typeof b === 'function') {
在调用b
之前Functions are first-class members in JavaScript and as such, can be assigned to variables and passed as arguments to other functions. The idea of a callback function is that one (or more) of parameters a function receives is a function reference which can be invoked under certain conditions. In your case, you're calling
bar
with two arguments but never doing anything with those parameters inbar
. JavaScript doesn't call back functions automatically, you as the programmer must do that.This is probably what you want:
Edit
@Jared's suggestion definitely makes more sense - changed
if(b)
toif(typeof b === 'function'){
before invokingb