这里我有一个问题,获取和使用对象的属性,我不明白为什么我被困在最后几天...我做了a screenshot可能看到的列表对象的属性和方法。
在这种情况下,我会转到“结果”属性。问题:当我执行“console.log(objet.result)”时,它返回“undefined”。
它确实是一个XHR对象。脚本上传文件,它主要使用这个插件:https://github.com/blueimp/jQuery-File-Upload/wiki/API
以及脚本代码下面(环顾“if(progress == 100)”):
$(函数(){
var ul = $('#upload ul');
$('#drop a').click(function(){
// Simulate a click on the file input button
// to show the file browser dialog
$(this).parent().find('input').click();
});
// Initialize the jQuery File Upload plugin
$('#upload').fileupload({
// This element will accept file drag/drop uploading
dropZone: $('#drop'),
// This function is called when a file is added to the queue;
// either via the browse button, or via drag/drop:
add: function (e, data) {
var tpl = $('<li class="working"><input type="text" value="0" data-width="48" data-height="48"'+
' data-fgColor="#0788a5" data-readOnly="1" data-bgColor="#3e4043" /><p></p><span></span></li>');
// Append the file name and file size
tpl.find('p').text(data.files[0].name)
.append('<i>' + formatFileSize(data.files[0].size) + '</i>');
// Add the HTML to the UL element
data.context = tpl.appendTo(ul);
// Initialize the knob plugin
tpl.find('input').knob();
// Listen for clicks on the cancel icon
tpl.find('span').click(function(){
if(tpl.hasClass('working')){
jqXHR.abort();
}
tpl.fadeOut(function(){
tpl.remove();
});
});
// Automatically upload the file once it is added to the queue
var jqXHR = data.submit();
},
progress: function(e, data){
// Calculate the completion percentage of the upload
var progress = parseInt(data.loaded / data.total * 100, 10);
// Update the hidden input field and trigger a change
// so that the jQuery knob plugin knows to update the dial
data.context.find('input').val(progress).change();
if(progress == 100){
data.context.removeClass('working');
//THE VALUE THAT I WANNA GET IS A PROPERTY OF THE DATA OBJECT
}
},
fail:function(e, data){
// Something has gone wrong!
data.context.addClass('error');
}
});
// Prevent the default action when a file is dropped on the window
$(document).on('drop dragover', function (e) {
e.preventDefault();
});
});
请有人帮助我吗?
感谢您提前寻求帮助和好一周!
答案 0 :(得分:0)
我认为这是一个回应问题。 Javascript无法评估响应(将其视为字符串)。
第一个解决方案 - &gt;
var obj = eval(&#39; {&#39; + res +&#39;}&#39;);
第二种解决方案 - &gt;
我们可以使用结果将结果解析为json var response = jQuery.parseJSON(res);
然后访问response.result
答案 1 :(得分:0)
最后,我解决了我的问题。
我没有使用好的回调参考来获取我的数据。我深入插入了插件文档,并且发现了另一种方法,而不是&#34;进展&#34;。我必须使用&#34;完成&#34;回调方法,如果我想得到&#34;结果&#34;值。
但是我想感谢你的帮助。
有一个很好的编码日!!
迈克尔