Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   .on 'click' не срабатывает второй раз (https://javascript.ru/forum/misc/64404-%27click%27-ne-srabatyvaet-vtorojj-raz.html)

Влад Громов 09.08.2016 08:59

.on 'click' не срабатывает второй раз
 
Привет, сразу скажу я не очень хорошо знаю javascript, есть код:
$(function() {
  $('#trash_gallery_item').on('click', function() {
  
      var url = $(this).attr("data-url");
  
      $.ajax({
          type: "POST",
          url: url,
          success: function() {
            $.pjax.reload({container : '#gallery-items'});
          }
      });
  });
});


Первый раз всё отлично срабатывает, но второй раз нет.
Гуглил, все говорят про события, но решения так и не нашёл. А времени разбираться сейчас нету. Помогите пожалуйста.

Влад Громов 09.08.2016 09:23

Решил проблему данным кодом, нашёл всё таки гугл + тостер

$(document).on('click', '#trash_gallery_item', function(event) {
      event.preventDefault();

      var url = $(this).attr("data-url");

      $.ajax({
          type: "POST",
          url: url,
          success: function() {
            $.pjax.reload({container : '#gallery-items'});
          }
      });
  });

warren buffet 10.08.2016 08:31

preventDefault() нужен только если в <a> есть href. stopPropagation() нужен, если выше по дереву имеются другие листенеры на тот же event, однако без preventDefault() на a (или кнопке) с href страница просто перезагрузится по указанному href или action формы. Короче это у тебя был какой-то частный контекстный глюк.

Да и пиши в url: сразу

url:$(this).attr("data-url"),

Ты же все равно ничего не делаешь с var url


Часовой пояс GMT +3, время: 17:44.