2012-01-27 4 views
1

일부 jquery를 사용하여 페이지로드시 목록 요소를 숨 깁니다. 코드가 정적 일 때 잘 동작하지만 목록 요소는 PHP를 통해 동적으로 생성되며 페이지가로드 될 때 사용할 수있는 것은 아닙니다. .hide를로드 이벤트에 첨부하려고했지만 오류가 발생합니다..live는 함수 오류가 아닙니다.

$ ('li.views-row'). live는 함수가 아닙니다.

코드는 모두 http://jsfiddle.net/Ypqyv/입니다. 왜냐하면 실행을 누르면 HTML이 이미 존재하기 때문에 오류가 표시되지 않습니다. (아니요, 실제 사이트에 대한 링크를 게시 할 수 없으며 방화벽 뒤의 dev 서버에 있습니다.)

아이디어가 있으십니까? .live() 문제에 대한 전체 답변을 여기에서 읽었지만 그 중 아무 것도 내 상황에 적용되지 않는 것 같습니다.

도착 일 : 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

확인 .live 사용하는 JQuery와의 버전은() 버전에서만 사용할 수 있습니다 1.3-1.8 저는 믿습니다 (1.8에서 사용되지 않음) 및 버전에서 제거되었습니다 1.9

+0

만약 전체 OP를 읽었다면, 우리가 1.6을 사용했다는 것을 알았을 것입니다. '.live()'를 사용할 수 있습니다. – EmmyS

관련 문제