Подтвердить что ты не робот

Прикрепление события к будущим элементам с помощью jquery

Я использую jquery 1.8 и должен отображать всплывающее окно, когда пользователь нажимает на какую-либо область с раскрывающимся списком класса. Я подключил события, используя, пока страница загружается в первый раз.

Вот он

$('.dropdown-toggle').on("click", function (e) {
console.log("dropdown toggle called");
$(this).next('.dropdown').toggle();
});
$(document).on("click", function (e) {
var target = e.target;
console.log("click toggle called");
if (!$(target).is('.dropdown-toggle') && !$(target).parents().is('.dropdown-toggle')) {
$('.dropdown').hide();
}
});

Что я обнаружил, что второе событие относится к элементам, добавленным в будущем, но первое не означает, что для выпадающего меню, добавленного позже, только "click toggle called" печатается на консоли, но для тех элементов, которые добавлены во время запуска, "нажмите" toggle called "и" dropdown toggle called ", который печатается.

Что здесь проблема? Используется ли только для документа для будущего элемента или может быть применено к классу или другим элементам, чтобы они применимы к будущим элементам? Если это не решение?

4b9b3361

Ответ 1

Вы можете использовать делегирование с .on(). Таким образом, он будет прослушивать щелчок в document (он также может быть родителем вашего элемента, если он присутствует при запуске обработчика события), при запуске ищет элемент, указанный как параметр .on().

Попробуйте следующее:

$(document).on("click", '.dropdown-toggle', function (e) {