2017-02-21 13 views
2

У меня есть проблема с нажатием кнопки в модальном режиме (с использованием FullCalendar).Fullcalendar modal button click запускает больше времени

Мой план:

  1. Нажмите на событие
  2. Модальные появляется с 3 вариантами
  3. подтвердить изменения значения в базе данных MySQL/Отказываюсь изменяет значение в базе данных MySQL

Когда я пытаюсь один раз работает очень хорошо. Но когда я закрываю модальный и открываю другой, я нажимаю кнопку отказа/подтверждения, тогда он работает больше раз (2, 4 ...). В чем проблема?

модальное:

<div id="eventContent" title="Event Details" style="display:none;"> 
    Name: <span id="name"></span><br> 
    Start: <span id="startTime"></span><br> 
    End: <span id="endTime"></span><br><br> 
    <p id="eventInfo"></p> 
    <button id="confirm_button" type="button">Confirm</button> 
    <button id="refuse_button" type="button">Refuse</button> 
    <button type="close_button">Close</button> 
</div> 

eventRender:

<script> 
    $(document).ready(function() { 

     $('#calendar').fullCalendar({ 
      header: { 
       left: '', 
       center: 'prev title next', 
       right: '' 
      }, 
      events: "http://localhost/calendar_directory/calendar_db_connect.php", 
      eventRender: function (event, element) { 
       element.click(function() { 
        var start = $.fullCalendar.formatDate(event.start, "YYYY-MM-DD"); 
        var end = $.fullCalendar.formatDate(event.end, "YYYY-MM-DD"); 

        $("#name").html(event.title); 
        $("#startTime").html(start); 
        $("#endTime").html(end); 
        $("#eventContent").dialog({modal: true, title: event.title, width: 350}); 


        $("#refuse_button").click(function() 
        { 
         var id = event._id; 
         var confirmed_number = 2; 
         var decision = confirm("Do you really want to refuse that?"); 

         if (decision) 
         { 
          $.ajax({ 
           url: "http://localhost/calendar_directory/confirm_events.php", 
           data: '&id=' + id + '&confirmed_number=' + confirmed_number, 
           type: "POST", 
           success: function (json) 
           { 
            console.log(id); 
            return; 
           } 
          }); 
         } 
        }); 

        $("#confirm_button").click(function() 
        { 
         var id = event._id; 
         var confirmed_number = 1; 
         var decision = confirm("Do you really want to confirm that?"); 
         if (decision) 
         { 
          $.ajax({ 
           url: "http://localhost/calendar_directory/confirm_events.php", 
           data: '&id=' + id + '&confirmed_number=' + confirmed_number, 
           type: "POST", 
           success: function (json) { 
            console.log("confirmed"); 
            return; 
           } 
          }); 
         } 
        }) 
       }); 
      }, 

     }); 
    }); 
</script> 

Database structure here:

подтвердил, колонка может быть: 0,1 или 2

+0

уведомление: каждый клик повторы. 1, мода, появляется-> щелкнуть по отказу -> отказывать ok-> закрыть, 2, мода появится-> нажмите на кнопку отказа -> -> отказаться ok-> отказаться ok-> закрыть, 3, модальный появляется-> щелчок на отказе -> отказаться от одобрения-> отказаться нормально -> отказаться ок-> закрыть, – danielori

ответ

0

Assigned тот же обработчик на событие щелчка.

Решение:

$("#refuse_button").unbind("click").click(function(){ 
    /*Your code goes here*/ 
} 
$("#confirm_button").unbind("click").click(function(){ 
    /*Your code goes here*/ 
}