我有这个使用更改事件的插件。
(function( $ ){
$.fn.liteUploader = function (userOptions) {
var defaults = { script: null, allowedFileTypes: null, maxSizeInBytes: null, typeMessage: null, sizeMessage: null, before: function(){}, ... },
options = $.extend(defaults, userOptions);
this.change(函数(){
var i, formData = new FormData(), file, obj = $(this), errors = false, errorsArray = [], filename = $(this).attr('name');
if (this.files.length === 0) { return; }
...
并像这样准备工作:
$(function(){
$('.fileUpload').liteUploader({
script: 'upload.php',
allowedFileTypes: 'image/jpeg,image/png,image/gif',
maxSizeInBytes: 1048576,
...
});
我想把它放在一个函数(即:my_upload())中,这样使用:
<input type="file" name="fileUpload1" id="fileUpload1" class="fileUpload" onchange="javascript: my_upload();" />
但我有 2 个更改事件并上传 2,3.. 次相同的文件。如果我从插件中删除this.change(function () {,我会得到一个错误:
TypeError: this.files is undefined
if (this.files.length === 0) { return; }
解决办法是什么?提前致谢。