【发布时间】:2013-08-27 12:48:39
【问题描述】:
我正在尝试将事件处理程序绑定到一个元素,该元素是 DOM 树中的子元素,该元素在运行时添加到 HTML 动态中。以下 HTML 显示了我得到的内容。表格及其thead 和tbody 是静态HTML。稍后我将 tbody (<tr><td><img src="bla.png"></td></tr>) 的内容添加到它。
<table id="progData">
<thead>
<th>Image</th>
</thead>
<tbody>
<tr><td><img src="bla.png"></td></tr>
</tbody>
</table>
所以现在我想在图像上绑定一个事件处理程序,例如:
$("#progData").on("click", "img", function(e){/*do sth in here*/});
但这由于某种原因不起作用。我必须使用
$("#progData").on("click", "tr", function(e){/*do sth in here*/});
至少在点击行时让它工作。
有没有办法将事件绑定到 DOM 中比直接子元素更深的动态元素?
【问题讨论】:
-
应用第一种方法时会出现什么错误?
-
修复损坏的 HTML 后对我来说很好:jsfiddle.net/98aKQ
-
为什么 HTML 被破坏了?对我来说似乎是正确的。
标签: javascript jquery html events dom