Для запуска функции другой библиотеки требуется 2 щелчка мыши

#javascript #html #jquery

#javascript #HTML #jquery

Вопрос:

При нажатии на HTML-элемент требуется еще один щелчок, чтобы запустить filemanager функцию!

 $(document).ready(function () {
    $(document).on("click",".lfm-image",function() {
       $(this).filemanager('image');
    });
});
  

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

1. Я бы предположил, потому что filemanager() плагин сам создает события, поэтому вам, скорее всего, нужно создать его экземпляр при загрузке, а не в обработчике кликов.

2. Элементы @RoryMcCrossan динамически создаются и добавляются в DOM, как я мог это сделать?

3. В этом случае вам нужно будет вручную создать экземпляр filemanager() плагина для новых элементов в момент их создания. Делегированный обработчик событий в этом случае работать не будет — при условии, что плагин не использует его внутренне. Учитывая, что у вас возникла эта проблема, я бы предположил, что это не так.

Ответ №1:

Внутренний код «$(document).on ..» уже является делегированием события, удалите его из $ (document).готово. событие click будет работать вне $ (document).готово…

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

1. Обратите внимание, что мы также используем doc.ready, чтобы сказать «запустите этот код, когда все остальное загрузится», что имеет преимущество в снижении кажущейся загрузки страницы — в случае делегирования одного события это не будет иметь большого значения — но может значительно увеличить время на подготовку, если код будет удален из doc.ready только потому, что он не обязательно должен быть там (в зависимости от того, где находится код и т.д.)