Neden benim jquery ajax istekleri birden çok kez gerçekleştiriyor?

0 Cevap php

Ben bir ajax isteği gerçekleştiren bir işlev tıkladığınızda Firebug konsoldan bakıyorum. Sorun bir düğmeye bir tıklama 1 ajax isteği göndermek gerektiğini, ama ben 2 istekleri gönderiliyor olsun!

Benim js kod şöyle görünür:

$(document).ready(function() {
   $('.book_now').click(function(){


$.ajax({
  type: 'POST',
  url: '/booking.php',
  data: 'event_id='+event_id+'&time_id='+time_id,
  success: function(data) {
    console.log('inside');
    $('#booking_box_content').html(data);
  }
});


  });
});

Hangi oldukça yalındır doğru görünüyor?

Benim konsolunda Ancak, ben 2 x 1 tıklama kapalı GET istekleri bkz.

Benim düğmesi basitçe:

<div class="book_now"></div>

Ben bir şey eksik - 2 GET istekleri olması gerekiyordu?

Herhangi bir şans yükleme yukarı $ (document) gereğidir. Yeni bir dosya yüklendiğinde tekrar () fonksiyonu hazır ve bunun tekrar tıklama işlevini yürütürken?

Not: Ben butonuna tıklayarak çift değilim. Muhtemelen önemli değil, ama ben değiştirmek eğer onu iki kez de öyle POST.

Edit: booking.php dan yanıt

<div id="booking_box_left">
  <h1 class="speaker_name"></h1>
  <h1 class="event_name"></h1>

  <div class="event_start_header">Start</div><div id="event_start_datetime">, </div>
  <div class="cleared"></div>
  <div class="event_end_header">End</div><div id="event_end_datetime">, </div>
  <div class="cleared"></div>
  <div class="event_where_header">Where</div><div id="event_where"><strong></strong><br /><br />
</div>

</div>
<div id="booking_box_right_container">
  <form id="booking_form_1" method="post">
    <input type="hidden" name="booking_id" value="7a614fd06c325499f1680b9896beedeb" />
    <input type="hidden" name="event_id" value="" />
    <input type="hidden" name="time_id" value="" />
    <div id="booking_box_right">
      <h1>To reserve your seat</h1>
      <input type="text" name="booking_email" class="enterSomething booking_email" title="Enter your email..." />
      <div class="booking_email_helper">On clicking next a ticket will be held for you for a short period for you to complete your registration.</div>
      <input type="submit" id="next" value="Next" />
    </div>
  </form>
</div>

Not: Bu yanıt bir şey benim bilgi tetiklenir herhangi bir işlevleri vardır. Ben tepkisi ne tıklama fonksiyonu sadece bir kez çalışıyorsa, o zaman muhtemelen düğmesine iki kez işlevini yürütüyor olamaz ... iki ajax isteği kapalı ateş edilir olduğunu şüpheci değilim, ama $. Ajax () parçası, yani başarı geri. Ben console.log () şeyler yapılandırılmış nasıl göstermek için JS kodunu güncelledik.

FINAL EDIT:

Benim ajax fonksiyonu aşağıdaki içinde sarılmış:

   $('#shade, #booking_box').fadeIn(function(){

     // ajax function

  }

Hiçbir fikrim vardı ama # gölge (benim thickbox) ve # booking_box dolayısıyla iki kez çalıştıran geldiğinde için için bu işlevi çağırıyordu! (

Ben böyle bir araç gibi hissediyorum.

Yardımlarınız için teşekkürler millet.

0 Cevap