簡體   English   中英

Jquery 事件執行兩次

[英]Jquery event executing twice

我真的很努力在幾個小時的代碼和平:

    $('#property_image_uploader').on('submit',function(e) {
         var formData = new FormData(this);
         $.ajax({
             type:'POST',
             url: $(this).attr('action'),
             data:formData,
             cache:false,
             contentType: false,
             processData: false,
             success:function(data){
             $.ajax({
                 contentType: 'application/x-www-form-urlencoded;charset=UTF-8'
                 , method: 'post'
                 , url: 'property_info_box.php'
                 , data: {id: parseInt(data)}
                 , success: function(page){
                     $('#property_info_box', parent.document).html(page);
                     return false; }
                 });
             },
             error: function(data){ console.log(data); }
        });
    });

    $("#property_image_chooser").on("change", function(e){
        $("#property_image_uploader").submit();
    });

問題是每次 $('#property_image_chooser') 更改時, $('#property_image_uploader') 提交都會被觸發兩次。 我試圖將 e.preventDefault() 和 e.stopImmediatePropagation() 放在這兩個函數內的任何地方,這個問題就消失了,但是,第二個 ajax 調用加載的頁面凍結了,無法再觸發任何按鈕...

感謝所有問題,通過在提交時添加 e.preventDefault() 並在第二次 ajax 調用中刪除“return false”來解決。 最終代碼如下所示:

$('#property_image_uploader').on('submit',function(e) {
     var formData = new FormData(this);
     $.ajax({
         type:'POST',
         url: $(this).attr('action'),
         data:formData,
         cache:false,
         contentType: false,
         processData: false,
         success:function(data){
         $.ajax({
             contentType: 'application/x-www-form-urlencoded;charset=UTF-8'
             , method: 'post'
             , url: 'property_info_box.php'
             , data: {id: parseInt(data)}
             , success: function(page){
                 $('#property_info_box', parent.document).html(page); }
             });
         },
         error: function(data){ console.log(data); }
    });
});

$("#property_image_chooser").on("change", function(e){
    e.preventDefault();
    $("#property_image_uploader").submit();
});

非常感謝大家...

暫無
暫無

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

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