Javascript 它仅在第二行显示删除消息
下面是显示删除消息“Javascript 它仅在第二行显示删除消息,javascript,jquery,Javascript,Jquery,下面是显示删除消息“$(“.imagemsg”+counter.html(数据)”的代码'。但它仅在删除文件后的第二行显示删除消息,这是不正确的,它应仅显示在删除文件的行中 例如,如果文件从第3行删除,则消息应显示在第3行中,如果文件从第6行删除,则应在第6行中显示删除消息,以此类推。但此时,无论文件从哪一行删除,只有第二行显示删除消息 var counter = 0; function stopImageUpload(success, imagefilename){ va
$(“.imagemsg”+counter.html(数据)”的代码代码>'。但它仅在删除文件后的第二行显示删除消息,这是不正确的,它应仅显示在删除文件的行中
例如,如果文件从第3行删除,则消息应显示在第3行中,如果文件从第6行删除,则应在第6行中显示删除消息,以此类推。但此时,无论文件从哪一行删除,只有第二行显示删除消息
var counter = 0;
function stopImageUpload(success, imagefilename){
var result = '';
counter++;
if (success == 1){
result = '<span class="imagemsg'+counter+'">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 {
result = '<span class="imageemsg">There was an error during file upload!</span><br/><br/>';
}
$(".deletefileimage").on("click", function(event) {
var image_file_name = $(this).attr('image_file_name');
jQuery.ajax("deleteimage.php?imagefilename=" + image_file_name)
.done(function(data) {
$(".imagemsg" + counter).html(data);
});
$(this).parent().remove();
});
return true;
}
var计数器=0;
函数stopImageUpload(成功,imagefilename){
var结果=“”;
计数器++;
如果(成功==1){
结果='文件已成功上载!
';
$('.listImage').eq(window.lastUploadImageIndex).append(''+htmlEncode(imagefilename)+'Remove
);
}
否则{
结果='上传文件时出错!
';
}
$(.deletefileimage”)。在(“单击”上,函数(事件){
var image_file_name=$(this.attr('image_file_name');
ajax(“deleteimage.php?imagefilename=“+image\u file\u name”)
.完成(功能(数据){
$(“.imagemsg”+counter).html(数据);
});
$(this.parent().remove();
});
返回true;
}
结果变量在imageupload.php中调用:
回拨:
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result ? 'true' : 'false'; ?>, '<?php echo $_FILES['fileImage']['name'] ?>');</script>
window.top.stopImageUpload(,'');
总体而言,这种方法并不理想。一个更好的方法可能是给它们提供相同的类,然后使用诸如父类
、查找
、子类
等来查找适当的元素
但是,在不大规模修改代码的情况下,我认为这应该可以解决它:
var _counter = counter;
$('.listImage').eq(window.lastUploadImageIndex).find(".deletefileimage").on("click", function(event) {
var image_file_name = $(this).attr('image_file_name');
jQuery.ajax("deleteimage.php?imagefilename=" + image_file_name)
.done(function(data) {
$(".imagemsg" + _counter).html(data);
});
$(this).parent().remove();
});
基本上,单击处理程序只附加到相应的按钮上,并使用相应的计数器值。我已经尝试了您的方法,但仍然会导致相同的问题。这是该应用程序的链接。打开应用程序时,如果您单击“添加”按钮两次,然后在第一行的文件输入中上载文件,它将在第一行的底部显示文件名。然后在第二行的文件输入上载一个不同的文件,您将在第二行的底部看到该文件的文件名。但当您删除这两个文件时,消息(文件已删除)仍仅显示在第二行中。希望这有帮助:)