2010-07-07 75 views
1

我有以下HTML结构JavaScript的不工作的新通过的jQuery的innerHTML添加

<table> 
<tr> 
    <div id="getData"> 
    </div> 
</tr> 
</table> 

我使用jQuery的HTML()方法来添加动态内容div ID为 “的getData” 为:

$('#valueResult').html(data); 
    var data =" 
<table><tr><td><input type="checkbox" name="test[1]" onclick="doSometing()" /> Test</tr></tr></table> 
    <table><tr><td><input type="checkbox" name="test[2]" onclick="doSometing()" /> Test</tr></tr></table> " 

但是函数doSometing()永远不会执行任何动态添加的复选框。 为什么如此?

任何人都可以帮我吗?

THX。

回答

2

对于这样的问题,一个更清洁的jQuery解决方案是使用.live()或甚至更好.delegate()

通过这种方法,你也应该给你的input element一个唯一的ID,并呼吁:

$(document).ready(function(){ 
    $('#unique_input_id').live('click', function(){ 
     alert('clicked'); 
    }); 
}); 

参考:.live()delegate()

+0

这节省了我很多时间。 .live能够找到新添加的DIV!谢谢 – 2012-01-24 18:37:30

+0

@DavidKEgghead:欢迎花花公子:) – jAndy 2012-01-26 09:58:04