2

我有一个类名的 div:.sel-display-on。单击时,我想使用 jquery 将其更改为 .sel-display-off。这可能吗?这个新类名的css属性会被应用吗?

$('.sel-display-on').click(function (e) {
        e.stopPropagation();
        // change class name to .sel-display-off
});
4

5 回答 5

4
$(this).removeClass('sel-display-on').addClass('sel-display-off');

或者,如果您确定此元素不会有任何其他类名(不是很好的做法,但可能更快):

$(this).attr('class', 'sel-display-off');
于 2012-08-27T21:20:56.620 回答
1
$(this).addClass('...');

或者

$(this).attr('class','...');
于 2012-08-27T21:21:04.013 回答
0

你可以这样做:

$('.sel-display-on').click(function (e) {
    e.stopPropagation();
    // change class name to .sel-display-off
    $(this).removeClass('sel-display-on').addClass('sel-display-off');
});

您也可以使用 toggleClass 来做到这一点:

$('.sel-display-on').click(function (e) {
    e.stopPropagation();
    // change class name to .sel-display-off
    $(this).toggleClass(function(){
       if($(this).is('.sel-display-on'){ 
          return "sel-display-off";
       } else {
          return "sel-display-on";
       }
});
于 2012-08-27T21:21:44.840 回答
0

您所有问题的答案都是“是”

您可以根据需要使用addClassremoveClasstoggleClassattr('class', ...)

如果这e.stopPropagation是在 a 上,则上述内容不是必需的div,除非您要停止绑定到它的其他一些功能。

于 2012-08-27T21:21:53.077 回答
0

http://api.jquery.com/addClass/

http://api.jquery.com/removeClass/

是的,使用上面的两个函数来实现这一点。此外,新课程将立即应用。

另一个注意事项:删除类 .sel-display-on 后,您将无法再使用 .sel-display-on 选择该元素。

于 2012-08-27T21:23:02.687 回答