2012-01-27 3 views
1

Я использую некоторые jquery, чтобы скрыть элементы списка при загрузке страницы. Когда код статичен, он работает нормально, но элементы списка генерируются динамически через php и не все доступны при загрузке страницы. Я попытался прикрепить .hide к событию нагрузки, но получить ошибку,.live не является функцией ошибки

$ ('li.views-row'). Live не является функцией.

Код находится на отметке http://jsfiddle.net/Ypqyv/, хотя из-за того, что html существует, когда вы нажимаете «Выполнить», вы не видите ошибку. (Нет, я не могу опубликовать ссылку на фактический сайт, он находится на сервере dev за брандмауэром.)

Любые идеи? Я прочитал целую кучу ответов здесь о проблемах с .live(), но никто из них, похоже, не применим к моей ситуации.

ETA: использование jquery 1.6.

+0

Не получать какие-либо ошибки , Реальная ситуация? –

+0

это работает для меня ...? –

+0

Насколько это возможно; как я уже сказал, элементы списка в живом коде генерируются php, поэтому нет никакого способа, чтобы jsfiddle мог дать вам точную ситуацию. – EmmyS

ответ

0

Я не уверен, почему вы получаете ошибку .live is not a function error, однако .live в любом случае не будет работать.

<li> элементы не сбрасывают onload, когда они созданы, поэтому $("li").live("load",handler) никогда не будет запущен в любом случае. http://w3schools.com/jsref/event_onload.asp

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

$.ajax({ 
    url: "...", 
    data: "...", 
    type: "...", 
    success: function(data){ 
    $("<li>"+data+"</li>").hide().appendTo("#myul"); 
    } 
}); 
0

Проверьте версию JQuery, что вы используете, .live() доступна только с версии 1,3 - 1,8 (устаревшее 1.8) Я считаю, что и был удален с версии 1.9

+0

Если вы прочитали весь OP, вы увидите, что он заявил, что мы использовали 1.6, который имеет '.live()' доступно. – EmmyS

Смежные вопросы