약 4 시간 동안 벽에 머리를 부딪 히고 있습니다. 왜 이렇게 작동하지 않는지 알아 내려고합니다. SQL 쿼리 결과의 수에 따라 코드를 동적으로 작성해야하는 프로그램이 있습니다.동적으로 작성된 스크립트가 작동하지 않습니다.
EasyBox라는 jquery 라이트 박스를 사용하고 있습니다. 이 같은 하드 코딩되면 작동합니다
<body id="body" onload="bodyLoaded()">
<a id="link" href="#test" title="Snowflake" rel="lightbox">Hello</a>
<div id="test" style="display:none; width:320px; height:240px">
<p>Test Content</p>
</div>
<script type="text/javascript">
function bodyLoaded(){
$('#link').attr('onclick', 'logText("Hello")');
}
function logText(message){
console.log(message);
}
</script>
을 그러나, 나는 동적으로이 같은 기록 된 링크가 때 EasyBox 팝업이 발생하지 않습니다.
<body id="body" onload="bodyLoaded()">
<div id="test" style="display:none; width:320px; height:240px">
<p>Test Content</p>
</div>
<script type="text/javascript">
function bodyLoaded(){
document.getElementById('body').innerHTML+="<a id='link' href='#test' rel='lightbox'>Hello</a>";
$('#link').attr('onclick', 'logText("Hello")');
}
function logText(message){
console.log(message);
}
</script>
이 작업을하는 이유가 뭘까요? 나는 여기에서 내 머리카락을 당길거야!
당신은 onload와 dom-ready의 차이점을 알고 있습니까? –
문제가 보이지 않습니다. 두 번째 스크립트 블록을 테스트 페이지로 복사했는데 제대로 작동합니다. 콘솔에 "Hello"를 기록합니다. – ajtrichards