只突出显示一个类

时间:2011-08-31 20:20:28

标签: jquery css

好的,所以当你单击.userGridViewItem时,它应该通过执行toggleClass()

来突出显示元素
$(".userGridViewItem").live('click', function () {
     $(this).toggleClass("warnings_receiver_highlight");
});

这很好用。现在我想在元素突出显示之前做一个检查器。

我想这样做,你只能突出显示相同的警告级别。 (黄色/无颜色是警告级别)

因此,如果您选择了1个黄色,则在取消标记黄色元素之前,您应该无法选择非彩色元素,然后您可以选择非彩色元素。

黄色/非彩色的类别为:warningYellowwarningNone

所以在用户拥有类warningNone之前所有未经警告的,并且之前所有被警告的用户都有类warnedYellow。通过这个我想确定并检查所以你只强调其中一个。

很难解释。

又一个例子:

如果您没有突出显示任何内容,并且突出显示一个具有类warnedYellow的元素,那么您应该只能高亮显示另一个warnedYellow类(如果您单击并尝试突出显示warningNone,则会发出警告错误类)

http://jsfiddle.net/xH8ME/3/

在这里,您可以突出显示(变为黑色)黄色和无黄色,您应该只能突出显示您先拾取的内容。因此,如果你选择黄色,你应该能够突出显示另一个黄色而不是“无”..如果你首先选择“无”,那么你应该不能突出显示任何“黄色”

2 个答案:

答案 0 :(得分:0)

可能你正在寻找这样的东西:

 $(".userGridViewItem").bind('click', function () {
        if ($('.warnings_receiver_highlight').length > 0) {
            if (($('.warnings_receiver_highlight').hasClass('warningYellow') &&
                $(this).hasClass('warningYellow')) ||
                ($('.warnings_receiver_highlight').hasClass('warningNone') &&
                 $(this).hasClass('warningNone'))
                ) {
                   $(this).toggleClass("warnings_receiver_highlight");        
            } else { 
                alert('error');
            }
        } else {
            $(this).toggleClass("warnings_receiver_highlight");        
        }
    });

http://jsfiddle.net/xH8ME/17/

答案 1 :(得分:0)

$(".userGridViewItem").bind('click', function () {
   if(($('.warningYellow').hasClass('warnings_receiver_highlight') && $(this).hasClass('warningNone'))||$('.warningNone').hasClass('warnings_receiver_highlight') && $(this).hasClass('warningYellow')))
       return;
    $(this).toggleClass('warnings_receiver_highlight');
});

知道了吗?如果没有突出显示任何人或仅突出显示同一类中的元素,则仅切换该类。