【问题标题】:jQuery bind function from inside another functionjQuery从另一个函数内部绑定函数
【发布时间】:2013-06-10 21:18:32
【问题描述】:

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

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 + '">' : '');
    }
}

【问题讨论】:

  • “条件运行是必需的。” - 不是为了这个问题:如果条件被硬编码为true,这只是一个毫无意义的复杂化。 @pXL - 如果您的编辑是需要审查的建议编辑,它会被拒绝为“太次要”,我的意思是,那个感叹号真的是个问题吗?

标签: javascript jquery function oop bind


【解决方案1】:

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

应该是

imageInput.bind('change', updateCustomImage);

【讨论】:

    【解决方案2】:

    你需要传递对函数的引用

    imageInput.bind('change', updateCustomImage);
    

    或者只使用匿名函数

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-12
      • 2012-04-25
      • 2022-11-27
      • 2018-03-20
      • 2016-01-04
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多