Событие jquery live для добавления элементов dom
Я хочу добавить класс к любому элементу DOM, который находится на странице сейчас или в будущем, который имеет указанный класс и соответствует некоторым критериям.
поэтому для некоторого псевдокода
$('.location').live('load',function(){
if($(this).find('input:first').val().substr(0,1) == "!"){ $(this).addClass('hidden')}
});
конечно, ничего не делает
ПРИМЕЧАНИЕ EDIT
это тоже не работает
$('.location').live('load',function(){
alert('adding location');
});
Ответы
Ответ 1
Функция jQuery live() - это просто подмножество плагина livequery, что намного богаче. Если вы используете livequery, вы можете сделать что-то вроде.
$('.location').livequery(function() {
// perform selector on $(this) to apply class
});
Это будет охватывать существующие элементы плюс любые будущие элементы, добавленные в DOM.
Ответ 2
Вы не можете этого сделать.
Вам нужно будет сделать:
$('.location').filter(function () {
return ($(this).find('input:first').val().substr(0, 1) == "!");
}).addClass('hidden');
Чтобы применить его ко всем текущим элементам на странице, а затем вручную добавьте "скрытый" класс в будущие элементы, добавляемые в DOM.
Ответ 3
Код .subtr(0,1) = "!"
скорее всего не сделает то, что вы хотите.