首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

var progress = new FileProgress(file, this.customSettings.upload_target);解决办法

2012-11-06 
var progress new FileProgress(file,this.customSettings.upload_target)问题1.this.fileProgressID

var progress = new FileProgress(file, this.customSettings.upload_target);


问题1.
this.fileProgressID = "divFileProgress"; 中的this指的是什么?  

问题2:
这是一个函数。 下边好像是设置什么属性,不理解这种表达方式
FileProgress.prototype.setProgress = function (percentage) {
this.fileProgressElement.className = "progressContainer green";
this.fileProgressElement.childNodes[3].className = "progressBarInProgress";
this.fileProgressElement.childNodes[3].style.width = percentage + "%";
};

问题3:
var progress = new FileProgress(file, this.customSettings.upload_target);
这是一个函数,直接调用就行,为什么还要 new

不好意思问这么多,谢谢!



这是swfupload里边handle.js的东西

JScript code
/* ****************************************** *    FileProgress Object *    Control object for displaying file info * ****************************************** */function FileProgress(file, targetID) {    this.fileProgressID = "divFileProgress";    this.fileProgressWrapper = document.getElementById(this.fileProgressID);    if (!this.fileProgressWrapper) {        this.fileProgressWrapper = document.createElement("div");        this.fileProgressWrapper.className = "progressWrapper";        this.fileProgressWrapper.id = this.fileProgressID;        this.fileProgressElement = document.createElement("div");        this.fileProgressElement.className = "progressContainer";        var progressCancel = document.createElement("a");        progressCancel.className = "progressCancel";        progressCancel.href = "#";        progressCancel.style.visibility = "hidden";        progressCancel.appendChild(document.createTextNode(" "));        var progressText = document.createElement("div");        progressText.className = "progressName";        progressText.appendChild(document.createTextNode(file.name));        var progressBar = document.createElement("div");        progressBar.className = "progressBarInProgress";        var progressStatus = document.createElement("div");        progressStatus.className = "progressBarStatus";        progressStatus.innerHTML = " ";        this.fileProgressElement.appendChild(progressCancel);        this.fileProgressElement.appendChild(progressText);        this.fileProgressElement.appendChild(progressStatus);        this.fileProgressElement.appendChild(progressBar);        this.fileProgressWrapper.appendChild(this.fileProgressElement);        document.getElementById(targetID).appendChild(this.fileProgressWrapper);        fadeIn(this.fileProgressWrapper, 0);    } else {        this.fileProgressElement = this.fileProgressWrapper.firstChild;        this.fileProgressElement.childNodes[1].firstChild.nodeValue = file.name;    }    this.height = this.fileProgressWrapper.offsetHeight;}FileProgress.prototype.setProgress = function (percentage) {    this.fileProgressElement.className = "progressContainer green";    this.fileProgressElement.childNodes[3].className = "progressBarInProgress";    this.fileProgressElement.childNodes[3].style.width = percentage + "%";};FileProgress.prototype.setComplete = function () {    this.fileProgressElement.className = "progressContainer blue";    this.fileProgressElement.childNodes[3].className = "progressBarComplete";    this.fileProgressElement.childNodes[3].style.width = "";};FileProgress.prototype.setError = function () {    this.fileProgressElement.className = "progressContainer red";    this.fileProgressElement.childNodes[3].className = "progressBarError";    this.fileProgressElement.childNodes[3].style.width = "";};FileProgress.prototype.setCancelled = function () {    this.fileProgressElement.className = "progressContainer";    this.fileProgressElement.childNodes[3].className = "progressBarError";    this.fileProgressElement.childNodes[3].style.width = "";};FileProgress.prototype.setStatus = function (status) {    this.fileProgressElement.childNodes[2].innerHTML = status;};FileProgress.prototype.toggleCancel = function (show, swfuploadInstance) {    this.fileProgressElement.childNodes[0].style.visibility = show ? "visible" : "hidden";    if (swfuploadInstance) {        var fileID = this.fileProgressID;        this.fileProgressElement.childNodes[0].onclick = function () {            swfuploadInstance.cancelUpload(fileID);            return false;        };    }}; 



[解决办法]
问题1.
this.fileProgressID = "divFileProgress"; 中的this指的是什么?
答:从你的例子里看,this指向FileProgress

问题2:
这是一个函数。 下边好像是设置什么属性,不理解这种表达方式
FileProgress.prototype.setProgress = function (percentage) {
this.fileProgressElement.className = "progressContainer green";
this.fileProgressElement.childNodes[3].className = "progressBarInProgress";
this.fileProgressElement.childNodes[3].style.width = percentage + "%";
};
答:对FileProgress的原型写法,对其增加一个成员setProgress,相当于:
JScript code
 function FileProgress(){   this.setProgress=function(){}} 

热点排行