如何在jQuery中覆盖每个LI的点击?

时间:2011-10-06 21:49:57

标签: javascript jquery

我有以下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');
        });
    });

5 个答案:

答案 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);
});