使用toggleClass()创建的类不会对click事件发出警报

时间:2016-07-16 21:49:46

标签: javascript jquery html css

另一个toggleClass()问题。关于这个jQuery函数有几十个问题,但我找不到这个特定的。

我有2个按钮。单击一下即可切换另一个类。这可以正常工作,因为颜色会发生变化,但是当我在'new'类上使用click()事件时,没有任何事情发生。

HTML

<button type='button' id='button1'>button 1</button>
<button type='button' id='button2'>button 2</button>

CSS

.pushed {
    background-color: salmon;
}

JS

$('#button1').click(function () {
  $('#button2').toggleClass('pushed');
});

$('.pushed').click(function () {
  alert('pushed!')
});

你可以在这里试试:https://jsfiddle.net/tk9pt3o2/

2 个答案:

答案 0 :(得分:2)

因为在存在之前选择了.pushed的元素。试着用这个:

$(document).on('click', '.pushed',function () {
  alert('pushed!')
});

on会将click事件绑定到当前匹配的元素和将来匹配的元素。

答案 1 :(得分:0)

考虑您只需为现有的Dom元素注册事件。 关键点是$(&#39; .pushed&#39;)返回jquery对象,没有元素在其上注册事件。