2016-01-16 4 views
0

У меня есть страница с кнопкой на ней, которая загружает модальную.JQuery удаляет старые функции и обработчики кликов

В этом модальном отображении данных.

Эти данные могут, например, состоять из 5 записей определенной таблицы Когда запись удаляется, данные обновляются. То же самое, когда добавляется запись.

Теперь, когда я закрываю модальный клик, выворачивая его заново и снова открывайте. Функции, которые были прикреплены к первому модалу, все еще существуют и стреляют. Итак, если я добавлю запись. Ajax и скрипты, которые делают это, запускаются/вызывают дважды.

Код:

  $(document).on('click','.remove_team',function(){ 
       var tournament_id = $(this).data('tourn'); 
       $.ajax({ 
        url :'./organisations/waiting_list/team_assignement.php', 
        type :'POST', 
        data : { 
         action : 'remove_team', 
         team_id : $(this).data('team'), 
         tourn : $(this).data('tourn') 
        }, 
        success : function(){ 
         LoadParticipantList(tournament_id); 
        } 
       }) 
      }) 
      function LoadParticipantList(tournament){ 
       $.ajax({ 
        url :'./organisations/waiting_list/team_assignement.php', 
        type :'POST', 
        data : { 
         action :'fetch_team_participants', 
         tournament : tournament 
        },success : function(res){ 
         res = jQuery.parseJSON(res);   
         $("#counter_"+tournament).html(res.count);    
         $("#div_"+tournament).html(res.teams); 
        } 
       }) 
      } 

Что такое правильный способ удалить обработчик щелчка, а затем непосредственно добавить его снова так Аякса пожаров?

+0

Что такое назначение двух вызовов ajax? – guest271314

+0

где модальный код? Все, что вы показываете, - это ajax-код – charlietfl

ответ

0

Что вы можете сделать, это добавить событие щелчка за пределами модального всплывающего окна. это клики останавливают процедуры, которые вы не хотите, чтобы ...

$('documents').bind('click', function(e) { 
    if($(e.target).closest('#your_modal_id').length == 0) { 
     //click happened outside the modal popup : stopping treatments 
    } 
}); 

также добавить распространения стоп событие, чтобы избежать нежелательного лечения, чтобы запустить ...

$('#your_modal_id').click(function(event){ 
event.stopPropagation(); 
}); 

Надеется, что это помогает

Смежные вопросы