我有一个表格,其中的行是通过 jQuery 动态删除和添加的。元素上应该有单击事件处理程序,并且td > ul
元素中可能存在子表td
。我的问题是我无法弄清楚如何在td > ul
不触发对嵌套表元素的单击的情况下在父表的元素上建立侦听器td > ul
。我已经尝试使用以下语句jQuery.on()
。
HTML
<table class="click-me">
<tbody>
<tr>
<td>
<ul><li>click</li></ul>
</td>
<td>dummy td
</td>
</tr>
</tbody>
</table>
CSS
td { border: 1px solid; margin: 20px; padding: 20px; }
.new { background-color: yellow; }
Javascript
$("table.click-me > tbody").on("click", "tr:first-child > td > ul > li", function()
{
$(this).closest("tr").after("<tr class=\"new\"><td><ul><li>click (new)</li></ul></td><td><table><tbody><tr><td><ul><li>click</li></ul></td><td>dummy td</td></tr></tbody></table></td></tr>")
});
$("table.click-me").on("click", "tbody > tr > td > ul > li", function()
{
$(this).closest("tr").after("<tr class=\"new\"><td><ul><li>click (new)</li></ul></td><td><table class=\"\"><tbody><tr><td><ul><li>click</li></ul></td><td>dummy td</td></tr></tbody></table></td></tr>")
}); //works on ALL children elements, even the sub-table. Not the desired results
与往常一样,非常感谢任何帮助!