2011-05-02 3 views
0

기본적으로 클릭 한 링크에 따라 다른 데이터로 채우기 위해 재사용하는 div 컨테이너가 있습니다.스크립트에서 돌아 오는 코드가 jquery에 의해 감지되지 않음

이 DIV 컨테이너는 "test_bed"의 클래스 이름과는 "linkA"의 클래스 이름을 채우는 데 사용 앵커, "linkb"등이있다

$(document).ready(function(){ 
    $("a.link").click(function(e) { 
    //prevent default behaviour: 
    e.preventDefault(); 
    var a = "a"; 
    var b = "b"; 
    //pass vars to script: 
    $.post('00_php_script_.php', { x:a , y:b }, 
    function(output){ 
     //Replace div content with script output: 
     $('div#test_bed"').html(output).show(); 
    }); 
    }); 
}); 

이것은 "linkA"중 하나입니다 같은 앵커는 위에서 언급 한 :

<a href="" id="linkA" name="linkA" class="linkA">LinkA</a> 

모든 PHP 스크립트는 링크와 함께 다시 바르 에코됩니다 않습니다

echo $_POST['x'] . " " . $_POST['y'] . " " . '<a href="" id="linkA" name="linkA" class="linkA">LinkA</a>'; 

PHP 스크립트에서 test_bed div로 반환되는 링크가 위의 jquery 코드에 의해 감지되지 않는 것 외에는 모든 것이 잘 작동합니다.

질문 :

가 어떻게 위의 jQuery 코드 감지 할 PHP 스크립트에서 반환 된 코드를 어떻게해야합니까?

어떤 도움을 감사들 ....

+1

"감지 됨"이란 정확히 무엇을 의미합니까? "LinkA"가 나타나나요? –

+0

LinkA가 나타나지만 클릭하면 위의 기능이 설명하는대로 작동하지 않고 기본 링크로 작동합니다. –

+0

새 요소가 DOM에 추가되면 해당 요소에 자동으로 적용되는 리스너가 없습니다. '.live()'또는'.delegate()'를 사용하거나 추가 된 링크에 핸들러를 적용해야합니다. –

답변

2

LinkA가 나타납니다,하지만 클릭하면 위의 기능이 설명대로 그냥 기본 링크 역할을 작동하지 않습니다. 당신이 click() 이벤트를 정의 할 때, 정의는 현재 문서에 미래의 것들하지 존재하는 요소에 적용하기 때문이다

.

해결 방법은 .live()을 참조하십시오. http://api.jquery.com/live/

0
$("a.link").live('click', function(e) { 
관련 문제