Обработка событий в jQuery

[Удален]
1387

На jquery делаю обработку события клика по картинке:

кусок кода отвечающий за обработку клика:



$("img.tag-delete").click(function()
{
var r=$(".popup-tags-delete");
r.find("span").text($(this).parent().find("a").html());
r.appendTo($(this).parents("ul")).animate({ opacity: "show" }, "slow");
var l=$(this).parents("li");
});

Скрипт отлично работает, однако когда данные посредствам ajax в элементе <ul> заменяются другим списком обработка события клика по картинке ни как не реагирует, и вообще ни какой элемент из блока <ul> не отрабатывается.

Получается что данные полученные через ajax не воспринимаются jquery. Может кто подскажет как убрать этот игнор со стороны фрейма?

Есть конечно вариант с onclick нужного мне элемента, но, по возможности, хочу сделать обработку событий именно таким образом, как привел выше.

[Удален]
#1

а может быть вы не понимаете, что надо заново такую обработку запустить, ведь вы не setInterval делаете, все таки а одиночный вызок функции, который имеет свойство заканчиваться, а не закончиться и ждать пока может быть когда нибудь вы ажаксом положите езе данных на съедение этой чудо функции.

если я все правильно понял, если нет простите за безумный ответ :))

[Удален]
#2

Нет, bearman, функция отрабатывается по событию click. Вопрос именно в том, как указать jquery на то что появились новые dom-элементы и их нужно учитывать.

Zlo_606ep
На сайте с 14.12.2006
Offline
129
#3

ну так надо эту же функцию и при получении выполнить

[Удален]
#4
Zlo_606ep:
ну так надо эту же функцию и при получении выполнить

нет, не проходит. Еще раз уточню, вопрос в том, что jQuery не видит переданные элементы через ajax, словно их нет на странице. Как указать jQuery на наличие новых элементов?

DyaDya
На сайте с 11.04.2007
Offline
147
#5

1. Вы проверяли, получаемые данные встраиваются в нужное место в иерархии элементов? Может на них просто обработчик ваш не срабатывает!

Если первое не помогло, то

2. Можно попробовать, вместе данными через AJAX передать новую функцию обработчик. Либо, чтобы она переопределила вашу первую (если такое возможно), либо чуток её переделать.

----

Просто нужно понять, когда происходит раcбор документа. Только один раз и в момент подключения библиотеки (.js) JQuery или же каждый раз, при появлении нового обработчика подобно тому, что вы в самом начале привели.

P.S. Подозреваю, что разбор документа происходит при подгрузке библиотеки, например, по событию onload или типа того. Если так, то

3. Можно через AJAX не только данные передавать но ещё раз подгружать библиотеку JQuery

Нужно копаться в коде. Раньше не сталкивался с подобной проблемой. Может всё-таки п.1 ?

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
[Удален]
#6

УРА, УРА! Оказывается мне хватило ума добавить лишние кавычки при повторном объявлении плагина, а теперь все работает. Всем спасибо за участие :)

a.fatman
На сайте с 15.01.2006
Offline
127
#7

http://brandonaaron.net/docs/livequery/ -- вот это может помочь.

[Удален]
#8

как всегда руки .....

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий