jQuery从另一个函数内部绑定函数

时间:2013-06-14 09:01:35

标签: javascript jquery function oop bind

我有这个示例代码。我需要的是在加载时运行一次函数并将其绑定到change事件。有条件的运行是必需的。

if (true) {
    Settings.customImage();
}

Settings.customImage = function() {
    var imageInput = $("#imageInput");
    var imagePreview = $('#imagePreview');

    updateCustomImage();
    imageInput.bind('change', updateCustomImage());

    function updateCustomImage() {
        var src = imageInput.val();
        alert(src);
        imagePreview.html(src ? '<img src="' + src + '">' : '');
    }
}

2 个答案:

答案 0 :(得分:1)

您需要将函数引用作为回调传递给bind函数。在您的代码中,您调用函数updateCustomImage并将其返回值(在本例中为undefined)作为change回调传递。

应该是

imageInput.bind('change', updateCustomImage);

答案 1 :(得分:0)

您需要传递对函数的引用

imageInput.bind('change', updateCustomImage);

或只使用匿名函数

imageInput.bind('change', function () {
    var src = imageInput.val();
    alert(src);
    imagePreview.html(src ? '<img src="' + src + '">' : '');
});