Javascript 下面如何定义此变量?
我有一个取消按钮,当用户上传文件时会出现。如果用户希望取消文件上载,则可以单击“取消”按钮,并向用户显示“取消”消息 尝试此操作时唯一的问题是,它表明要显示消息的stopImageUpload函数中未定义cancel_image_file_name。但我确实在startImageUpload函数中定义了这一点。所以我的问题是,如何从startImageUpload函数中获取cancel_image_file_名称,并在stopImageUpload函数中定义它 下面是显示2个功能的代码: startImageUpload功能:Javascript 下面如何定义此变量?,javascript,jquery,Javascript,Jquery,我有一个取消按钮,当用户上传文件时会出现。如果用户希望取消文件上载,则可以单击“取消”按钮,并向用户显示“取消”消息 尝试此操作时唯一的问题是,它表明要显示消息的stopImageUpload函数中未定义cancel_image_file_name。但我确实在startImageUpload函数中定义了这一点。所以我的问题是,如何从startImageUpload函数中获取cancel_image_file_名称,并在stopImageUpload函数中定义它 下面是显示2个功能的代码: sta
var cancelimagecounter = 0;
function startImageUpload(imageuploadform, imagefilename){
cancelimagecounter++;
var _cancelimagecounter = cancelimagecounter;
$('.imageCancel').on("click", function(event) {
var cancel_image_file_name = $(this).attr('cancel_image_file_name');
return stopImageUpload(2, cancel_image_file_name);
});
return true;
}
var imagecounter = 0;
function stopImageUpload(success, imagefilename){
var result = '';
imagecounter++;
if (success == 1){
result = '<span class="imagemsg'+imagecounter+'">The file was uploaded successfully!</span><br/><br/>';
$('.listImage').eq(window.lastUploadImageIndex).append('<div>' + htmlEncode(imagefilename) + '<button type="button" class="deletefileimage" image_file_name="' + imagefilename + '">Remove</button><br/><hr/></div>');
}
else if (success == 2){
result = '<span class="imageemsg">' + cancel_image_file_name + ' Upload Was Cancelled!</span><br/><br/>';
}
else {
result = '<span class="imageemsg">There was an error during file upload!</span><br/><br/>';
}
return true;
}
stopImageUpload功能:
var cancelimagecounter = 0;
function startImageUpload(imageuploadform, imagefilename){
cancelimagecounter++;
var _cancelimagecounter = cancelimagecounter;
$('.imageCancel').on("click", function(event) {
var cancel_image_file_name = $(this).attr('cancel_image_file_name');
return stopImageUpload(2, cancel_image_file_name);
});
return true;
}
var imagecounter = 0;
function stopImageUpload(success, imagefilename){
var result = '';
imagecounter++;
if (success == 1){
result = '<span class="imagemsg'+imagecounter+'">The file was uploaded successfully!</span><br/><br/>';
$('.listImage').eq(window.lastUploadImageIndex).append('<div>' + htmlEncode(imagefilename) + '<button type="button" class="deletefileimage" image_file_name="' + imagefilename + '">Remove</button><br/><hr/></div>');
}
else if (success == 2){
result = '<span class="imageemsg">' + cancel_image_file_name + ' Upload Was Cancelled!</span><br/><br/>';
}
else {
result = '<span class="imageemsg">There was an error during file upload!</span><br/><br/>';
}
return true;
}
var-imagecounter=0;
函数stopImageUpload(成功,imagefilename){
var结果=“”;
imagecounter++;
如果(成功==1){
结果='文件已成功上载!
';
$('.listImage').eq(window.lastUploadImageIndex).append(''+htmlEncode(imagefilename)+'Remove
);
}
否则如果(成功==2){
结果=''+取消图像文件名+'上载已取消!
;
}
否则{
结果='上传文件时出错!
';
}
返回true;
}
在JavaScript中变量具有函数级作用域,要在其他函数中也获得取消图像文件名
,请在两个函数之外定义它
顺便说一句,您可以从
stopmageupload
函数中使用imagefilename
,因为您已经将其传递给该函数:
return stopImageUpload(2, cancel_image_file_name);
因此,在您的stopImageUpload
函数中,更改行:
result = '<span class="imageemsg">' + cancel_image_file_name + ' Upload Was Cancelled!</span><br/><br/>';
result=''+取消图像文件名+'上载已取消
;
致:
result=''+imagefilename+'上载已取消
;
在JavaScript中变量具有函数级作用域,要在其他函数中也获得取消图像文件名
,请在两个函数之外定义它
顺便说一句,您可以从
stopmageupload
函数中使用imagefilename
,因为您已经将其传递给该函数:
return stopImageUpload(2, cancel_image_file_name);
因此,在您的stopImageUpload
函数中,更改行:
result = '<span class="imageemsg">' + cancel_image_file_name + ' Upload Was Cancelled!</span><br/><br/>';
result=''+取消图像文件名+'上载已取消
;
致:
result=''+imagefilename+'上载已取消
;
您已经将该值作为第二个参数传递给“stopImageUpload”、“imagefilename”。就用这个吧
实际上,在同一个函数的其他地方,您正在使用该参数。您已经将该值作为第二个参数传递给了“stopImageUpload”、“imagefilename”。就用这个吧
事实上,在同一函数的其他地方,您正在使用该参数。按如下方式重新构造代码:
(function() {
var cancelimagecounter = 0,
imagecounter = 0,
cancel_image_file_name;
window.startImageUpload = function(imageuploadform,imagefilename) {
...
cancel_image_file_name = ... // (remove the var)
...
};
window.stopImageUpload = function(success,imagefilename) {
...
// cancel_image_file_name is not undefined now.
};
})();
按如下方式重新构造代码:
(function() {
var cancelimagecounter = 0,
imagecounter = 0,
cancel_image_file_name;
window.startImageUpload = function(imageuploadform,imagefilename) {
...
cancel_image_file_name = ... // (remove the var)
...
};
window.stopImageUpload = function(success,imagefilename) {
...
// cancel_image_file_name is not undefined now.
};
})();
嗨,谢谢你,这已经删除了错误。我只有一个小问题,对于imagefilename,它显示“未定义”。例如,如果我试图取消文件“Tulips.png”,那么它应该显示“Tulips.png Upload Was Canceled”,但它显示的是“undefined Upload Was Canceled”,你知道这是为什么吗?@user1391585:确保此行
var cancel\u image\u file\u name=$(this).attr('cancel\u image\u file\u name')
返回一些值。嗨,谢谢,这已经消除了错误。我只有一个小问题,对于imagefilename,它显示“未定义”。例如,如果我试图取消文件“Tulips.png”,那么它应该显示“Tulips.png Upload Was Canceled”,而不是显示“undefined Upload Was Canceled”,你知道为什么吗?@user1391585:确保此行var cancel\u image\u file\u name=$(this).attr('cancel\u image\u file\u name')
返回一些值。