2014-09-26 4 views
0

그래서 모든 데이터가 가져온 한 페이지를 만들었습니다. IE9 +와 chrome에서 훌륭하게 작동하지만 IE8에서 작동해야하고 AJAX를 통해 가져온 모든 것이 작동하지 않아야합니다. 코드는 다음과 같습니다.ajax 호출 후 onclick 함수 사용

아약스

$.ajax({ 
    url: "includes/myfile.php", 
    type: "GET", 
    data: ({'data' : data,}), 
    success: function(data){ 
    $("section").append(data); 
    } 
}); 

JS

function myfunction(data){ 
//do something 
} 

HTML

< button onclick='myfunction(data)' > click here < /button> 

참고 : 나는 $ (일) CSTE 연구진 (물건, 물건) 일 것이다라는 것을 알고 있지만이 포함 것이다 재건 내 모든 기능. 그렇게 할 수 있다면 그렇게 피하려고 노력합니다.

+0

1 기능. – MrYellow

답변

1

jQuery/JavaScript가 myfile.php에로드 된 항목을 인식하지 못하기 때문입니다. 가장 쉬운 해결책은 on()을 사용하여 이벤트를 위임하면 해당 이벤트가 DOM 트리 위로 버블 링됩니다. 예를 들어

http://api.jquery.com/on/

-

$(document).on('click', 'element', function() { 

이제 요소는 클릭 이벤트가에 행동 할 위치를 문서화하도록 거품을 클릭 할 때. jQuery 코드가 원래 실행될 때 jQuery가 요소를 인식하고 해당 요소에 대한 버블 링 된 이벤트를 가로 챌 수 있도록 이벤트가 버블 링되는 요소가 있어야합니다. 이렇게하면 문서가 상당히 안전한 내기가되지만, 원하는 경우 문서를 좁힐 수 있습니다.

당신은 바닐라 자바 ​​스크립트에서 이벤트 위임을 쓸 수있는 쉬운 경로를 이동하지 않으려면 :

// get the parent element, add a click listener... 
document.getElementById("element").addEventListener("click", function(e) { 
    // example using a list item 
    if(e.target && e.target.nodeName == "li") { 
     console.log("list item ", e.target.id.replace("post-"), " was clicked!"); 
    } 
}); 
당신은 당신이 모든 기능을 대체 할 것 "내 모든 기능을 재 구축"되지 않습니다