在JQuery切换类上添加事件

use*_*206 2 jquery toggleclass

我的加价:

<ul id="playerControls">
    <li class="play-bt"></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

如果按下播放按钮,我会触发此事件:

$(".play-bt").bind('click',function(){
    $(this).toggleClass('pause-bt');
});
Run Code Online (Sandbox Code Playgroud)

现在我假设play-bt类名已被更改为pause-bt,但是为什么这个事件:

$(".pause-bt").bind('click',function(){
    console.log('PEW');
});
Run Code Online (Sandbox Code Playgroud)

是不是被解雇了?

Cur*_*urt 5

现在我假设.play-bt类名已被更改为pause-bt.

toggleClass 不是这样的.

toggleClass是的组合addClassremoveClass.

toggleClass 将检查指定的类是否存在.

  • 如果是,则将其从元素中删除.
  • 如果没有,则将其添加到元素中.

关于您的事件未触发的原因,这是因为您必须分配类之前绑定该click事件pause-bt.

bind()在当前点搜索与选择器匹配的所有元素,并将该函数分配给事件处理程序.

您需要重新绑定此事件,或使用live()而不是bind()

live():

为现在和将来与当前选择器匹配的所有元素附加事件处理程序.

http://api.jquery.com/live/