2016-09-14 2 views
1

У меня есть эта кнопка:почему файл JS называется два раза

<button type="button" id="topic_schedulati" class="btn btn-info">Mostra Topics Schedulati</button> 

Это мой JQuery код для обработки нажмите:

(function() { 
    $(window).on('action:ajaxify.end', function(event, data) { 

     if (new RegExp(/^category\/[0-9]+/).test(data.url)) { 
      $(document).ready(function(){ 
      $('body').on('click', '#topic_schedulati', function() { 
       console.log("hi"); 
      }); 
     }); 
     } 

    }); 
}()); 

Почему, когда я нажимаю на кнопку я показываю печать «привет» два раза, а не один? Кто-нибудь может мне помочь?

+1

Каждый раз, когда код выполняется, вы связываете нажмите .... переплета события в событиях плохая идея – epascarello

ответ

1

Скорее всего, это действие «действие: ajaxify.end» вызывается несколько раз. Поскольку вы присоединяете событие к телу, нет необходимости в других условиях, поскольку событие будет реагировать на любой добавленный элемент, который соответствует идентификатору «topic_schedulati», помните, что у вас должен быть только один элемент с этим идентификатором или вы В зависимости от браузера будет иметь неустойчивое поведение.

$(function() { 
    $('body').on('click', '#topic_schedulati', function() { 
      console.log("hi"); 
    }); 
}); 
+0

Да это работает ... Спасибо –

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