带有jquery插件的backbone.js视图

backbone.js view with jquery plugin

本文关键字:js 视图 backbone jquery 插件 带有      更新时间:2023-09-26

我发现了一些类似的问题,但没有一个对我有效。。。我已经用require.js加载了jquery插件(它是在视图脚本之后加载的),我需要在输入更改时访问它的方法,我确实尝试过在reder中这样做,但它是一样的。这就是我目前所拥有的。

events: {
    "change #signageUploadInput": "loadingImage"
},
loadingImage: function(event) {
    $('body').loadImage(
        event.target.files[0],
        function (img) {
            document.body.appendChild(img);
        },
        {maxWidth: 600}
    );
}

Object[Object Object]没有方法"loadImage"

发现脚本可以从主干视图访问。问题是插件试图访问窗口对象的方式。我使用了不同的脚本,效果很好。这就是我使用的:

上传.js

function my_uploader(evt) {
    var files = evt.target.files; // FileList object
    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) {
        // Only process image files.
        if (!f.type.match('image.*')) {
            continue;
        }
        var reader = new FileReader();
        // Closure to capture the file information.
        reader.onload = (function(theFile) {
            return function(e) {
                // Render thumbnail.
                var span = document.createElement('span');
                span.innerHTML = ['<img class="thumb" src="', e.target.result,
                                  '" title="', escape(theFile.name), '"/>'].join('');
                document.getElementById('list').insertBefore(span, null);
            };
        })(f);
        // Read in the image file as a data URL.
        reader.readAsDataURL(f);
    }
}

主干视图脚本

events: {
    "change #signageUploadInput": "loadImage",
},
loadImage: function(evt) {
    my_uploader(evt);   //script is inside fileuploader.js
}

当您加载页面或Backbone事件启动时,什么时候会出现此错误?因为如果是在页面加载时,Backbone可能会在require.js加载插件文件之前,尝试遍历并编译所有事件和函数。需要更多的信息来解决这个问题,你能用require.js在JavaScript文件中发布你正在加载的部分吗?