Нужна помощь по JavaScript

vlasoff
На сайте с 31.08.2007
Offline
101
621

Доброго всем времени суток,

Есть страница html кода, в которой в частности присутствует функция, которая обращается к элементу по Id ($('#add_new_brand').click(function(){ ... });), но, элемент этот изначально на странице отсутствует и появляется позднее вследствие действий пользователя (jquery ajax) без перезагрузки самой этой страницы.

Так вот эта функция не работает, я так понимаю из-за того что код с этим элементом грузится после загрузки страницы, т.к. если поместить этот подгружаемый код изначально на страницу то всё работает. Реально ли это как-то победить ?

kil
На сайте с 03.04.2006
Offline
84
kil
#1

Победить реально почти всё.

Можно например в функцию включить проверку наличия элемента на странице. Что-то типа этого:

   
if (document.all.myElement != null)
{
// Все в порядке!
}

И дополнительно вызвать эту функцию после подгрузки кода.

vlasoff
На сайте с 31.08.2007
Offline
101
#2
kil:
Можно например в функцию включить проверку наличия элемента на странице.

Фишка в том, что элемента на странице нет, стало быть и смысла в проверке его наличия тоже нет. Я говорю про то что при ставке html кода, например:

$('#div').html('<div id="aaa"></div>')

к вставленному элементу нельзя обратиться по Id...

kil
На сайте с 03.04.2006
Offline
84
kil
#3

По-моему, вполне можно обратиться. Я написал про проверку т.к. возможно, эта функция делает еще что-то и так просто отключить ее не получится.

vlasoff
На сайте с 31.08.2007
Offline
101
#4
kil:
По-моему, вполне можно обратиться. Я написал про проверку т.к. возможно, эта функция делает еще что-то и так просто отключить ее не получится.

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

vlasoff добавил 18.09.2009 в 13:11

kil:
По-моему, вполне можно обратиться.

Да, всё верно. Спасибо, разобрался.

[Удален]
#5

debugbar глючная срань.

юзайте firebug и все найдется.

но ваще вставлять элементы в дом через "<div..." некошерно.

$('#div').appendChild(new Element(div)) вот так надо =)

[Удален]
#6

vlasoff, есть плагин для jquery

Live Query Plugin, который предназначен для решения подобных проблем :)

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