为什么我的jQuery回调函数没有响应?

时间:2015-01-18 10:19:27

标签: jquery callback jquery-callback

使用此代码,我希望我的脸上会called back提示,但我得不到任何结果。

我已经按照this这样的教程中使用的简单示例进行了操作,并且看到与他们的示例没有明显不同。仍然没有成功。

$.fn.mirror = function (selector, callback) {
    return this.each(function () {
        var $this = $(this);
        var $selector = $(selector);
        $this.bind('keyup', function () {
            $selector.text($this.val()); 
        });
    });
    callback();
};

$('#displayurl').mirror('.displayurl', function () {
    alert('called back');
}); 

1 个答案:

答案 0 :(得分:2)

因为您在第一行执行后返回。 return结束函数的执行并将值返回给调用者。

在这种情况下,您的回调函数将不会执行,因为您正在返回$.each函数并终止函数的执行。尝试

$.fn.mirror = function (selector, callback) {
    this.each(function () {
        var $this = $(this);
        var $selector = $(selector);
        $this.bind('keyup', function () {
            $selector.text($this.val()); 
        });
    });
    callback();
    return; //you could return whatever is useful for you if you want.
};

$('#displayurl').mirror('.displayurl', function () {
    alert('called back');
}); 

我还建议您阅读有关编程的基础知识。