Как вы связываете, используя цикл for - PullRequest
2 голосов
/ 18 января 2020

При нажатии на кнопки, которые имеют класс папки (все они созданы функцией addf (не указано в этом вопросе, так как некоторые люди говорили, что исходная программа не имеет значения)) не реагируют на нажатия. У меня есть предупреждение, чтобы проверить, вызывается ли событие. Это не.

        $('.folder').click(function() {
      alert('works')
        fnum = $(this).attr(id);
        $('body').html("<button class='btn btn-submit' onclick='addb()'>add a bookmark</button>")
        $('body').append(localStorage.getItem(fnum + 'b'));
    })

1 Ответ

1 голос
/ 18 января 2020

Вместо метода html просто добавьте новые элементы, чтобы предотвратить удаление прослушивателей событий. Кроме того, вы можете просто использовать on вместо bind, поскольку оно устарело. Если вам действительно нужно делегирование событий, вы можете использовать:

$('body').on('click', '.f', callback);

Я не понял, как вы используете localStorage, но если вам это нужно, пожалуйста, объясните это далее в комментариях.

Я удалил идентификаторы и l oop в пользу классов, поскольку это облегчает работу с несколькими элементами.

function addb () { console.log('click') };

$('.f').on('click', function() {
  var button = $('<button>add a bookmark</button>');
  button.addClass('btn btn-submit');
  button.on('click', addb);
  $('body').append(button);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button class="f">Button class 'f'</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...