假设你要动态地添加到HTML菜单,在菜单HTML将看起来像那么:如何将事件添加到刚刚添加的jQuery元素?
<ul>
<li><a href="#">item-1</a>
<li><a href="#">item-2</a>
</ul>
,每个元素都有被绑定了一个“click”事件。如何使用jQuery动态创建它?
我想什么了是以下(使用对象的假想MENU_ITEM阵列“称号的)相当于:
$('menu').append("<ul>");
for (var index in menu_items) {
$('menu').append("<li><a href='#'>"+menu_item['title']+"</a>")
.live("click", function(e) { /* Event Handler */ });
}
$('menu').append("</ul>");
不幸的是这不会有两个原因(至少,这工作我所知道的):
-
- .live()元素仅匹配插入的最新元素。
我希望了解如何用jQuery解决这个问题。如果可能的话,我宁愿不干扰我的ID命名空间。
编辑:
两个澄清(如果它不是很明显):
的< UL>不存在下手。
- 从MENU_ITEM
信息是在函数使用(即.live( '点击',函数(E){/ * do_something_with ... */MENU_ITEM [ '信息']})。
我假设你的意思是“.menu”;) - 对不起,我很讽刺。使用这种方法菜单“点击”将触发该元素内的任何位置,点击是必需的/ li元素 – 2009-09-09 09:47:14
我使用相同的选择器作为原始问题 – stimms 2009-09-09 11:34:06