Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 它仅在第二行显示删除消息_Javascript_Jquery - Fatal编程技术网

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();
});

基本上,单击处理程序只附加到相应的按钮上,并使用相应的
计数器
值。

我已经尝试了您的方法,但仍然会导致相同的问题。这是该应用程序的链接。打开应用程序时,如果您单击“添加”按钮两次,然后在第一行的文件输入中上载文件,它将在第一行的底部显示文件名。然后在第二行的文件输入上载一个不同的文件,您将在第二行的底部看到该文件的文件名。但当您删除这两个文件时,消息(文件已删除)仍仅显示在第二行中。希望这有帮助:)