1

这是我的jQuery:

// Show all instances
    var link = $('<a class="show-instances" href="#">Show all instances</a>');

    $('tr.main').hide().first().find('.product').parent().remove('a').append(link);
    $('tr.main').first().show();

    $(function () {
        $(".show-instances").click(function (e) {
            e.preventDefault();
            $(".show-instances").addClass('selected').not(this).removeClass('selected');
            var selectedClass = $(this).closest('tr.main').attr('class').split(' ');
            $('.' + selectedClass[1]).not(':has("a.show-instances")').toggle();
            return false;
        })
    });

添加锚点作品并单击添加类作品 - 我只是不明白为什么当用户第二次单击锚点时单击添加“选定”的类不会删除?

因此,当用户单击锚点“show-instances”时,“selected”类将添加到锚点中 - 我需要在再次单击该类时将其删除。

我错过了另一个功能吗?

有什么建议么?

/ * ** * **已解决* ** * ** * /

使用 Toggle 类 - 这是 jquery:

// Show all instances
    var link = $('<a class="show-instances" href="#">Show all instances</a>');

    $('tr.main').hide().first().find('.product').parent().remove('a').append(link);
    $('tr.main').first().show();

    $(function () {
        $(".show-instances").click(function (e) {
            e.preventDefault();
            $(this).toggleClass("selected");
            var selectedClass = $(this).closest('tr.main').attr('class').split(' ');
            $('.' + selectedClass[1]).not(':has("a.show-instances")').toggle();
            return false;
        })
    });

这里还有一个Jsfiddle链接可以查看

4

2 回答 2

2

根据您所描述的内容,toggleClass函数可能对您更有效。

从 API 文档:

.toggleClass( function(index, class, switch) [, switch] ) function(index, class, switch)返回要在匹配集中每个元素的类属性中切换的类名的函数。接收集合中元素的索引位置、旧类值和开关作为参数。switch 一个布尔值,用于确定是应该添加还是删除该类。

尽管这看起来很简单,但如果您在jsfiddle上发布这些类型的问题也会有所帮助,这样人们就可以看到您想要实现的目标。

于 2012-08-30T01:41:52.423 回答
1

您是否尝试过toggleClass()而不是删除添加类?

于 2012-08-30T01:40:27.230 回答