我有以下UL:
<ul class="xbreadcrumbs" style="position:absolute; bottom:0px">
<li><a href="someURL">A Crumb</a></li>
</ul>
这是由我的javascript动态创建的。如何覆盖jQuery中名为xbreadcrumbs的UL内部的每个LI的点击,让它做一些事情而不是去一个新的超链接?
另外,如何让每个li的行为变得不同?
更新:
$.each('.xbreadcrumbs li', function(){
$(this).live('click',function(e){
e.stopPropagation();
console.log('clicked for each li');
});
});
答案 0 :(得分:0)
将ul
动态添加到DOM后,您可以订阅内部lis
的{{3}}事件:
$('.xbreadcrumbs li').click(function() {
// do something when the li is clicked
});
答案 1 :(得分:0)
你必须使用.live()函数,以便动态创建的元素可以附加事件......
$("ul.xbreadcrumbs li").live("click", function() {
//do something
}
答案 2 :(得分:0)
使用直播活动:
$('.xbreadcrumbs li').live('click', function(){
//override here
});
答案 3 :(得分:0)
由于</ul>
是动态添加的,因此最好使用$.live()或$.delegate(),如下所示:
$('.xbreadcrumbs li').live('click', function(e){
e.stopPropagation();
console.log('Clicked');
});
希望这有帮助!
答案 4 :(得分:0)
Live是答案的一部分,答案的另一部分是你需要使用事件的target
属性来知道实际点击了哪个元素。
$('.xbreadcrumbs li').live('click', function(e){
e.preventDefault();
console.log('Clicked on element', e.target);
});