我已经用头撞墙了大约 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>
任何想法为什么这会起作用?我在这里拉头发!