Я должен дважды щелкнуть, чтобы инициализировать таблицу сортировки с помощью Sortable.init()

#javascript #jquery #wordpress #sortables

#javascript #jquery #wordpress #сортируемые

Вопрос:

Я использую Ajax Load More для загрузки некоторых таблиц на моем веб-сайте WordPress. Я добавил функцию сортировки в таблицу с помощью плагина под названием sortable . Перед загрузкой с помощью ajax я могу отсортировать таблицу, просто добавив data-sortable в table тег, подобный этому <table class="uk-table uk-table-large" data-sortable> .

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

 jQuery(document).on('click', '.floor .uk-table', function() {
   Sortable.init()
});
 

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

Ответ №1:

Вместо добавления прослушивателя событий щелчка в document вы можете просто добавить его непосредственно в сам класс.
Пример:

 jQuery('.uk-table').click(function() {
   Sortable.init()
});
 

Комментарии:

1. Этот код не работает, потому что я думаю, что таблицы загружаются динамически через ajax. Для того, чтобы такого рода событие щелчка работало с плагином ajax more loading, инструкция состоит в том, чтобы запускать события щелчка, чтобы использовать обработчик событий jQuery .on() .