我通过在div中设置innerHTML来创建动态复选框。这个复选框上有onclick事件。该代码在除IE8之外的所有浏览器中都能正常工作。
在设置innerHTML后,IE似乎没有绑定事件。有没有办法重新绑定事件?
以下是innerHTML代码。
<INPUT id=Animal onclick=\"updateHTML();\" name=Control value=Animal type=checkbox uncheckedValue=\"0\" checkedValue=\"1\">
<INPUT id=Food onclick=\"updateHTML();\" name=Control value=Food type=checkbox uncheckedValue=\"0\" checkedValue=\"1\">
以下是完整的代码
<HTML>
<HEAD>
<SCRIPT>
function updateHTML()
{
alert('updateHTML');
}
function changeEvent()
{
var innerhtml="\r\n<TBODY id=originalDiv><TR>\r\n<TD title=\"\">\r\n<INPUT id=Animal onclick=\"updateHTML();\" name=Control value=Animal type=checkbox uncheckedValue=\"0\" checkedValue=\"1\">Animal\r\n<INPUT id=Food onclick=\"updateHTML();\" name=Control value=Food type=checkbox uncheckedValue=\"0\" checkedValue=\"1\">Food\r\n</TD></TR></TBODY>";
var originalDiv=document.getElementById('originalDiv');
var temp = originalDiv.ownerDocument.createElement('div');
temp.innerHTML = '<table>' + innerhtml + '</table>';
originalDiv.replaceChild(temp.firstChild, originalDiv.firstChild);
}
</SCRIPT>
</HEAD>
<BODY>
<TABLE>
<TBODY id ="originalDiv">
<TR>
<TD vAlign=middle>
<INPUT id=Bird onclick=\"updateHTML();\" name=Control value=Bird type=checkbox uncheckedValue=\"0\" checkedValue=\"1\">Bird
</TD>
</TR>
</TBODY>
<TBODY id="submit">
<TR>
<TD>
<input type=button value="Submit" onclick="changeEvent()">
</TD>
</TR>
</TBODY>
</TABLE>
<BODY>
答案 0 :(得分:0)
首先,你应该解决这个问题:
<input type="checkbox" id="Bird" value="1" />
<input type="checkbox" id="Bird" value="1" data-unckecked-value="0" data-checked-value="1" />