.removeClass不兼容addClass的作用吗?

izo*_*ate 4 javascript jquery

请原谅我是一个菜鸟,但不应该这样做吗?

$(document).ready(function() {
    $('.button').click(function() {
       $(this).addClass('button-clicked');
    });

    $('.button-clicked').click(function() {
        $(this).removeClass('button-clicked');
    });

});
Run Code Online (Sandbox Code Playgroud)

不应该第二次单击删除该类并将其恢复为.button?

这里是jsfiddle:http://jsfiddle.net/pXdwM/

use*_*291 9

不,因为在您调用第二个click()按钮时,按钮没有".button-clicked",因此未分配事件处理程序.你可以像这样重写它

$('.button').click(function() {
   $(this).toggleClass('button-clicked');
});
Run Code Online (Sandbox Code Playgroud)

或使用 live()

$('.button-clicked').live("click", function() {
    $(this).removeClass('button-clicked');
});
Run Code Online (Sandbox Code Playgroud)