Не работают события в подгруженых динамически элементах
натолкнулся на такую проблему...
есть <select...> при изменение пунктов которого подгружается хтмл код с помощью примерно такого: $("#description").html('бла бла бла'); в этом подгружаемом html коде есть еще один селект, и вот на него уже событие change не реагирует $("#item").change(function() { alert("test"); }); подскажите как можно обработать события у второго селекта? |
Используйте метод live
|
спасибо) уже нашел.
надо было так: $("#item").live("change",function() { alert("test"); }); |
С появлением метода live резко возросла вероятность получить jQuery головного мозга :D
|
Цитата:
Меня больше всего в live удивляет( и восхищает) что обработчики меняются элементам при изменениях в DOM. |
Что? Ничего там не меняется, это банальное навешивание листенера на родителя. Мало того, в 1.3.2 даже не осилили навешивать на контекст, а биндили аж на document. В 1.4 вроде бы уже пофиксили. )
|
наткнулся на очередную стену для меня.
теперь у подгруженых элементов не могу сменить атрибут( $('.ctrlHolder').attr("class",$('.ctrlHolder').attr("class") + " error"); тут как я понимаю live уже не поможет... может кто нить подскажет? |
Цитата:
А в общем надо: $('.ctrlHolder').attr("class", function(){ return this.className + ' error'; /* // или так тоже можно return $(this).attr('class') + 'error'; */ }); Цитата:
|
Вротмненоги, да вы что, документацию даже не открываете?
$('.ctrlHolder').addClass('error') Ну точно jQuery головного мозга. |
Цитата:
|
Часовой пояс GMT +3, время: 22:19. |