2012-01-06 3 views
0

$(document).readyJQuery와 CSTE 연구진은() 태그

$("#dynaffiliate").on("click", "a.ajaxpaginate", function(event){ 
event.preventDefault(); 
    alert($(this).text()); 
}); 

<div id="dynaffiliate">가 pageload에 존재하는 내의 일부를 고정하는 바인딩 이벤트와 동적 HTML에 응답하지 않습니다.

해당 클래스의 요소 묶음을 주입하면 이벤트가 발생하지 않습니다. 파이어 폭스를 사용하고 있습니다. 나는 또한 클래스를 사용하지 않고 단지 a을 사용해 보았습니다. 아무런 반응이 없었습니다.

이제이 문제를 더 깊이 생각할 것입니다. a 요소는 이러한 방식으로 처리 할 수 ​​없을 수도 있습니다. 브라우저가 탐색하기 때문에 부모에게 이벤트를 버블 링 할 기회가 있기 전에 링크를 클릭하십시오. a 태그 대신 다른 요소를 사용하는 것이 더 낫지 않습니까?

+2

* 브라우저는 부모에게 이벤트를 버블 링하기 전에 링크로 이동합니다. * 아니요, 사실이 아닙니다. 취소되지 않은 경우 버블 링 단계 이후에만 기본 작업이 수행됩니다. 새로운 요소는 모두'# dynaffiliate'의 자손입니까? 그렇지 않으면 작동하지 않을 것입니다. http://jsfiddle.net/ 데모를 만드는 것이 좋습니다. –

+1

jQuery 1.7 이상을 사용하고 있습니까? 'dynaffiliate'는 부모가되어야합니다. 해당 요소에서 이벤트를 실행하려고합니까? – Purag

+1

[나를위한 작품] (http://jsbin.com/ugiket/2/) ...이 예제와 상황이 어떻게 다른가요? – s4y

답변

1

모든 브라우저에서 작동합니다. DIV를 다시로드하지 않습니까?

// e.g. 
$('#dynaffiliate').html('<a class="ajaxpaginate">Link text</a>'); 

// instead of 
$('#dynaffiliate') 
    .html('<div id="dynaffiliate"><a class="ajaxpaginate">Link text</a></div>'); 
// or 
$('#dynaffiliate').append('<a class="ajaxpaginate">Link text</a>'); 

1.7 이전의 jQuery 버전을 사용하고있을 수도 있습니다. 이 경우 Firebug 콘솔에 오류 메시지가 표시되어야합니다.

+0

브라우저 버전이 문제였습니다. 지금 놀라운 작품. 감사 – Len

관련 문제