【发布时间】:2010-02-23 19:52:49
【问题描述】:
有没有办法只让listitem的内部元素
做点什么?
我的列表元素可以包含特定类的a 标签。
内部a 标记绑定到实时点击事件处理程序。列表项本身也有一个单击事件处理程序。
类似的东西
<li>some text<a class="someClassName">some text</a></li>
使用a 标签的处理程序
$('#somelist li a').live("click", function(e)
这就是为 li 项目添加事件的方式
$(markers).each(function(i,marker){
$("<li />")
.html("Locatie "+'<a class="ol id"><strong>'+ids[i]+'</strong></a>')
.click(function(e){
showLocation(marker, i);
})
.appendTo("#somelist ");
【问题讨论】:
-
您能发布更多代码吗?什么是动态附加的?
a和li?只是a?li的点击是使用bind()而a是使用live()吗? -
li 项是在开头动态添加的 稍后单击复选框时,会在列表项中添加一个额外的 a 标记。我检查了 hasClass ,其中一个被点击了。我想我有一个绑定和一个现场活动然后
-
好吧,你是说,我应该使用 live 一致。我可以明确地尝试一下,也可以尝试@Alex 的解决方案。我可以稍后再回来验证一个或另一个或两者是否有效。感谢你们迄今为止提供的宝贵意见。
-
Alex 提供了一个出色解决方案的关键。请看他的回答。
-
你应该警惕使用'return false'。改用 e.preventDefault 或 e.stopPropogation
标签: jquery events binding live