2015-05-20 2 views
0

У меня есть простой сценарий, как это:событие нажмите выстреливает несколько раз после успешного получения данных

(function($) { 
    $(document).ready(function() { 
     function getData() { 
      $.ajax({ 
       url: '/path/to/file', 
       type: 'GET', 
       dataType: 'json', 
       success: function(response) { 
        var text = response.jsontitle; 

        $('#link').attr('class', ''); 
        $('#link').attr('class', text); 

        // Second, Third, Fourth .... after get data 
        // Click fires 2, 3, 4 .... after get data 
        $('#link').on('click', function() { 
         console.log($(this).attr('class')); 
        }) 
       } 
      }); 
     } 

     var refreshData = setInterval(getData, 5000); 

     getData(); 
    }); 
})(jQuery); 

Я хочу, чтобы событие щелчка происходит только один раз за интервал времени. В настоящее время, однако, событие click происходит столько раз, сколько getData().

Например, если getData() встречается дважды, тогда событие события произойдет дважды. затем

+1

Вы являетесь обязательными для мыши п числа раза в AJAX успешный обработчик. Почему бы не воспользоваться функцией быстрого доступа к клику. – SSA

+1

Спасибо за ваш комментарий :) –

ответ

6

первое отвязать событие связывается, если вы хотите использовать в функции обратного вызова успеха

$('#link').off('click').on('click'.... 

ИЛИ лучше, чтобы связать событие один раз за пределами функции обратного вызова

+0

Спасибо. Решено :) –

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