2013-02-14 38 views
0

我试图点击功能添加到除非父李有一定的阶级(.current)A元素排除当父李有

下似乎不工作:

$('ul li:not(.current) a').click(function (e) { 

这里有一个的jsfiddle:

http://jsfiddle.net/WvPE7/

我不想点击功能为 'UL li.current一个' 执行 - 只 'UL李一'(无.current )

当然,我错过了很简单的东西......任何帮助赞赏! :)

回答

2

您应该增加而不是使用:not('.current')小的状态。

if ($(this).parent().hasClass('current')) return; 

当您运行$('ul li:not(.current) a'),在这一点上,有带班目前没有利的事件绑定。

DEMO:http://jsfiddle.net/WvPE7/5/

全码:

$('ul li a').click(function (e) { 
    e.preventDefault(); 

    if ($(this).parent().hasClass('current')) return; 

    $('p').hide(); 
    $('li').removeClass('current'); 
    $(this).parent().addClass('current'); 
    var myClass = $(this).attr('class'); 
    $('p.' + myClass).fadeIn(); 
}); 
-1

反过来

$('ul li:not(.current) a').click(function (e) { 

$('ul').on('click', 'li:not(.current) a', function (e) { 
+0

仍然没有工作,请参阅:http://jsfiddle.net/WvPE7/2/ – traummaschine 2013-02-14 21:30:18

+0

@RT检查我的答案或不确定 – 2013-02-14 21:32:58

+0

回答看到我在更新http://jsfiddle.net/WvPE7/6/ – Derek 2013-02-14 21:34:02

1

可以使用.on()方法简单代表团做到这一点:

$('ul').on('click', 'li:not(.current) a', function(e) { 
    // ... 
}); 

您可以了解更多有关.on()here


这是在行动:http://jsfiddle.net/WvPE7/7/

+0

为什么downvote? – 2013-02-14 21:35:53

+0

你的回答和我的恐怕没有什么不同。请确保在发布之前检查其他人的答案。不要忘记,你也可以贡献给其他人的答案 – Alexander 2013-02-14 21:36:31

+2

对不起,我没有意识到我使用的是受版权保护的代码。 – 2013-02-14 21:37:40