Jquery - 更改按钮功能

时间:2013-08-12 21:23:51

标签: jquery

我是JQuery的新手,我正在尝试编写在文本和函数中更改单击按钮的代码。这是代码:

$('.button1').click(
    function() {
        $(this).val('Button2');
        $(this).removeClass('button1').addClass('button2');
    }
);

$('.button2').click(
    function() {
        alert('Button 2 Clicked');
    }
);

问题是,第二个事件不会触发并调用警报。

提前致谢

1 个答案:

答案 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之下,它就会有用。