Javascript 带有jquery插件的backbone.js视图
我发现很少有类似的问题,但没有一个对我有用。。。 我已经用require.js加载了jquery插件(它在查看脚本之后加载),我需要在输入更改时访问它的方法,我曾尝试在reder中这样做,但都是一样的。这就是我目前所知道的Javascript 带有jquery插件的backbone.js视图,javascript,jquery,backbone.js,underscore.js,Javascript,Jquery,Backbone.js,Underscore.js,我发现很少有类似的问题,但没有一个对我有用。。。 我已经用require.js加载了jquery插件(它在查看脚本之后加载),我需要在输入更改时访问它的方法,我曾尝试在reder中这样做,但都是一样的。这就是我目前所知道的 events: { "change #signageUploadInput": "loadingImage" }, loadingImage: function(event) { $('body').loadImage( event.targ
events: {
"change #signageUploadInput": "loadingImage"
},
loadingImage: function(event) {
$('body').loadImage(
event.target.files[0],
function (img) {
document.body.appendChild(img);
},
{maxWidth: 600}
);
}
对象[Object Object]没有方法“loadImage”何时出现此错误,何时加载页面或在主干上触发事件?因为如果是在页面加载时,主干可能会在require.js加载插件文件之前尝试遍历并编译所有事件和函数。需要更多的信息来解决这个问题,你能用require.js发布你在JavaScript文件中加载的部分吗?事实证明,脚本可以从主干视图访问。问题在于插件试图访问窗口对象的方式。我使用了不同的脚本,效果很好。我就是这么用的: uploader.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);
}
}
删除了我的答案。无法读取您正在使用的插件。我可以问一下您使用的插件是什么吗?我使用的插件错误发生在正确的时间:)在输入更改时,这意味着它会在我需要它时做出反应,但无法访问插件的代码只是查看它们的API文档,您确定它与jQuery兼容吗?在我看来,它不像jQuery插件,只是加载图像的
窗口
对象的扩展。这就解释了为什么你的对象[Object Object]也没有方法“loadImage”
错误,因为如果它是一个插件,就不会有问题。可能会尝试同样的方法,但使用与API文档相同的代码,因此window.loadImage()
。它对window.loadImage()也会这样做
events: {
"change #signageUploadInput": "loadImage",
},
loadImage: function(evt) {
my_uploader(evt); //script is inside fileuploader.js
}