簡體   English   中英

一次單擊多次調用jquery函數

[英]jquery function is being called more than once on single click

我有多個具有相同類名和不同ID的按鈕。 但是當我單擊按鈕時,每次都會被調用多個。 有關實際代碼的信息,請參見視頻: https : //nimb.ws/3RMoNP

這是我的代碼

$(document).on("click", ".delete_attachment_confirmation", function(e){
    e.preventDefault();

    var attachment_id = $(this).data('attachmentid');
    $('#delete_attachment_confirmation_'+attachment_id).attr("disabled", true);
    $('#delete_attachment_confirmation_'+attachment_id).text("Deleting file");


    $.ajax({
      url: "<?php echo base_url('attachment/delete_attachment/')?>"+$(this).data('attachmentid'),
      type: "GET",  
      dataType: "text",
      success: function(data){

        $("#row_"+attachment_id).remove();

        $("#attachment_message_body").text(data);

        $('#delete_attachment_'+attachment_id).modal('hide');

        // attachment message
        $('#attachment_message').modal('show');

        // modal issue removal trick
        $('.modal-backdrop').removeClass('modal-backdrop');

      }
    }); 
});


<button class="btn btn-danger delete_attachment_confirmation" id="delete_attachment_confirmation_<?=$row->id?>" data-attachmentid="<?=$row->id?>" ><?php echo $this->lang->line('btn_modal_delete');?>

更新的按鈕代碼

<button class="btn btn-danger delete_attachment_confirmation" id="delete_attachment_confirmation_<?=$row->id?>" data-attachmentid="<?=$row->id?>" ><?php echo $this->lang->line('btn_modal_delete');?>

突出顯示的部分向我們展示了多次調用ajax函數。

在此處輸入圖片說明

上面的JS代碼中沒有什么導致它運行兩次,只是該按鈕沒有關閉標簽,而多個按鈕沒有關閉標簽,並且具有相同的類可能是原因,我只是在Codepan中運行了代碼,並且運行良好。

<button class="btn btn-danger delete_attachment_confirmation" id="delete_attachment_confirmation_<?=$row->id?>" data-attachmentid="<?=$row->id?>" ><?php echo $this->lang->line('btn_modal_delete');?></button>

https://codepen.io/balramsinghindia/pen/OJLzjbo

我已使用此問題中提供的解決方案。

Ajax,防止多次點擊

  $(".classNamw").unbind().click(function() {
//Your stuff
  })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM