2010-05-18 3 views
1

jQuery 1.3.2 및 라이브 쿼리 플러그인을 사용하고 있습니다. 스크립트는 IE6뿐만 아니라 FF에서도 작동해야합니다. 대신 jQuery를 업그레이드하고 라이브를 사용하는 것은 불가능합니다.라이브 쿼리 사용 : 아약스를 통해 생성 된 전파 된 요소를 찾을 수 없습니다.

어떻게 든이 스크립트는 동적으로 생성 된 요소에 의해 호출되지 않습니다.

$('select').livequery('change',function(){ 
     var select_id = $(this).attr("id");                   ... 
... 
... 

}); 

$('select').livequery('mouseover',hideExtensions()); 

function hideExtensions(){ 
... 
... 
} 

IE6 및 FF에서 함수는 정적 (이미 존재하는) 요소에 의해 올바르게 호출됩니다. 그러나 그것은 동적으로 생성 된 요소에 의해 호출되지 않습니다.

어떤 이유가있을 수 있습니까?

업데이트 "live"로 동일한 기능을 테스트했습니다. FF로 작동했지만 IE6에서는 작동하지 않습니다. 그렇기 때문에 나는 라이브 쿼리로 해결 방법을 찾고 있습니다.

답변

0

jQuery 1.4.2로 업그레이드 할 수없고 거기에 내장 된 live 콜백을 사용할 수없는 이유가 있습니까?

livequery가 작동하지 않는 경우 몇 가지 핵심 자바 스크립트가 포함 된 "수동"이벤트 위임을 시도 할 수 있으며 직접 부모에게 이벤트 버블 링을 의지 할 수 있습니다. 의는이 같은 DOM 구조를 가지고 있다고 가정 해 봅시다 : 귀하의 코멘트에 대한

var something = document.getElementById('something'); 

something.addEventListener('click', function(e) { 
    e = window.event || e; 

    // If the target of the event is the added anchor we're looking for 
    if (e['srcElement' in e ? 'srcElement' : 'target'].getAttribute('class') === 'some-tag') 
     // code block goes here 

    return false; 

}, false); 
+0

감사 :

<div id='something'> <a href='#' class='some-tag'></a> <a href='#' class='some-tag'></a> <a href='#' class='some-tag'></a> <!-- more dynamic elements 'a' tags identical to those above added here --> </div> 

를 그리고 자바 스크립트입니다. 1.4.2로 업데이트하고 싶지 않은 이유는 프로그램이 중단 될 수 있기 때문입니다. – Kel