Количество элементов jquery
Автор Ostrich задал вопрос в разделе Другие языки и технологии
Как прикрутить лайтбокс к динамически создаваемым элементам jQuery? и получил лучший ответ
Ответ от Александр Пожарский[гуру]
Как вариант - переопределить .load так чтобы новая функция добавляла ещё 1 обработчик к старой
Ответ от David[гуру]
Решение:
Для обработки event "ов динамически создаваемых элементов, используется метод (метод != функция) $.on посредством глобального обьекта document.
То есть, код для обработки текущих элементов, отличается от тех которые поступают с сервера через AJAX.
Например, обработчки для текущих элементов выглядит так
$(".btn").click(function(){
aler t("OK");
});
Будет выводить алерт на каждый клик. Но если все кнопки с классом btn будут поступать с сервера AJAX, то алерт не будет работать. Почему? Потому что, код инициализации, то есть селектор + колбэк были предопределены для ЛОКАЛЬНОГО использования. Не для глобального.
Решение: Инициализировать для глобальной обработки.
Для этого в Jquery воспользуйся методом $.on.
Прототип выглядит так:
$.on("event", "selector", "callback");
На практике, используется так:
$(function(){
$(document).on("click", ".btn", function(event){
event.preventDefault();
alert("OK");
});
});
Данный снипет делает тоже самое что и предыдущий пример, но ОДНИМ отличием, теперь новые динамические элементы будут работать! Потому что они теперь как глобальные.
И возращаясь к твоему вопросу, то для того чтобы это работало и с динамическими элементами 1) Переопредели селектор, на что нибудь по проще типа, ".imglb" (и пропиши этот класс везде в тегах) . Переопредели событие, на что-нибудь вроде mouseover, вместо колбэка впиши lightBox (без скобок)
Решение:
Для обработки event "ов динамически создаваемых элементов, используется метод (метод != функция) $.on посредством глобального обьекта document.
То есть, код для обработки текущих элементов, отличается от тех которые поступают с сервера через AJAX.
Например, обработчки для текущих элементов выглядит так
$(".btn").click(function(){
aler t("OK");
});
Будет выводить алерт на каждый клик. Но если все кнопки с классом btn будут поступать с сервера AJAX, то алерт не будет работать. Почему? Потому что, код инициализации, то есть селектор + колбэк были предопределены для ЛОКАЛЬНОГО использования. Не для глобального.
Решение: Инициализировать для глобальной обработки.
Для этого в Jquery воспользуйся методом $.on.
Прототип выглядит так:
$.on("event", "selector", "callback");
На практике, используется так:
$(function(){
$(document).on("click", ".btn", function(event){
event.preventDefault();
alert("OK");
});
});
Данный снипет делает тоже самое что и предыдущий пример, но ОДНИМ отличием, теперь новые динамические элементы будут работать! Потому что они теперь как глобальные.
И возращаясь к твоему вопросу, то для того чтобы это работало и с динамическими элементами 1) Переопредели селектор, на что нибудь по проще типа, ".imglb" (и пропиши этот класс везде в тегах) . Переопредели событие, на что-нибудь вроде mouseover, вместо колбэка впиши lightBox (без скобок)
Ответ от Прим Палвер[гуру]
Запускать активацию .lightBox() после каждой подгрузки данных.
Или позаменять в коде лайтбокса .click на live('click',...)
Запускать активацию .lightBox() после каждой подгрузки данных.
Или позаменять в коде лайтбокса .click на live('click',...)
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Как прикрутить лайтбокс к динамически создаваемым элементам jQuery?
что такое jQuery и как этим пользоваться
jQuery — JavaScript-фреймворк, фокусирующийся на взаимодействии JavaScript и HTML
подробнее...
JavaScript без jQuery...
Ты бы хоть правильно написал названия функций.
Функция fadeIn() и fadeOut() основана на
подробнее...
Кто знает JavaScript? Подскажите, как подсчитать количество различных элементов в массиве?
Если просто элементов, то length
Если уникальных... то нужно писать свою функцию для подсчета
подробнее...
спросили в Сайт Сайты
Какой самый простой и лучший Конструктор Веб Сайтов - !Только не онлайн!
Aurora Web Editor - создает вебсайты быстро и легко - точно так же как, когда Вы используете
подробнее...
Какой самый простой и лучший Конструктор Веб Сайтов - !Только не онлайн!
Aurora Web Editor - создает вебсайты быстро и легко - точно так же как, когда Вы используете
подробнее...