我正在尝试向 A 元素添加单击功能,除非父 LI 具有某个类(.current)
以下似乎不起作用:
$('ul li:not(.current) a').click(function (e) {
这是一个jsFiddle:
我不希望为“ul li.current a”执行点击功能 - 只是“ul li a”(没有.current)
当然我错过了一些非常简单的东西......任何帮助表示赞赏!:)
我正在尝试向 A 元素添加单击功能,除非父 LI 具有某个类(.current)
以下似乎不起作用:
$('ul li:not(.current) a').click(function (e) {
这是一个jsFiddle:
我不希望为“ul li.current a”执行点击功能 - 只是“ul li a”(没有.current)
当然我错过了一些非常简单的东西......任何帮助表示赞赏!:)
您应该添加一个小条件而不是使用:not('.current')
.
if ($(this).parent().hasClass('current')) return;
当您运行时,事件是绑定$('ul li:not(.current) a')
的,此时,没有 li 具有当前类。
演示: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();
});
您可以使用以下.on()
方法通过简单的委托来做到这一点:
$('ul').on('click', 'li:not(.current) a', function(e) {
// ...
});
.on()
您可以在此处了解更多信息。
这是在行动:http: //jsfiddle.net/WvPE7/7/
转动
$('ul li:not(.current) a').click(function (e) {
进入
$('ul').on('click', 'li:not(.current) a', function (e) {