#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 только потому, что он не обязательно должен быть там (в зависимости от того, где находится код и т.д.)