Привязать пользовательский обработчик событий после загрузки ajax - PullRequest
4 голосов
/ 09 августа 2010

В частности, я хочу привязать лайтбокс к определенному элементу.Обычно я просто делаю это: $('a.lightbox').lightBox();, но это не работает, так как я делаю некоторую загрузку с AJAX.Глядя на jQuery API, я обнаружил .bind() и .live(), но ничего не получаю, когда делаю $('a.lightbox').bind('lightBox') после вызова AJAX .load().

Чего мне не хватает?

Ответы [ 2 ]

5 голосов
/ 09 августа 2010

Вам нужно добавить функцию обратного вызова, которая обрабатывает это.

$("#div").load(url, {}, function(){ $('a.lightbox').lightBox(); });

Bind не поможет вам, так как событие не получает событие.

1 голос
/ 25 мая 2011

Другой способ - привязать элемент выше в доме и проверить тип цели.Например:

$('#div').bind('click', function (event) {
    target = $(event.target);
    if (target.hasClass('lightbox')) {
        // do stuff here
    }
});

Только не заходите слишком далеко, иначе вы поймаете слишком много кликов.

...