我是JQuery的新手,我正在尝试编写在文本和函数中更改单击按钮的代码。这是代码:
$('.button1').click(
function() {
$(this).val('Button2');
$(this).removeClass('button1').addClass('button2');
}
);
$('.button2').click(
function() {
alert('Button 2 Clicked');
}
);
问题是,第二个事件不会触发并调用警报。
提前致谢
答案 0 :(得分:2)
事件处理程序绑定到元素,更改元素的类不会更改绑定。在您的情况下,您需要使用事件委派。
从jQuery 1.7开始,使用.on()
:
$(document).on('click', '.button1',
function() {
$(this).val('Button2');
$(this).removeClass('button1').addClass('button2');
}
);
$(document).on('click', '.button2',
function() {
alert('Button 2 Clicked');
}
);
如果这些人有共同的祖先(比如<div id="container">
),则可以使用它代替document
:$('#container').on('click', '.button2', ...
。只要每个.button1
和.button2
点击事件都在div
之下,它就会有用。