繁体   English   中英

动态添加类的事件

[英]Events on dynamically added classes

我有一种形式,其中按钮的类是动态变化的,具体取决于请求来自何处。 我正在尝试捕获onclick事件,但它不包含动态添加的类。 我确保将类添加到按钮。 我哪里出问题了。

片段-

   $('.button').removeClass('oldClass');
   $('.button').addClass('newClass');

   <button class = "button">Button</button>

OnClick-

     $('.newClass').click(function(){
          alert("test");
     });

尽管按钮类已更改为newClass,但是代码并未获得此事件事件。

谢谢

那就是当您绑定click事件时,该元素具有另一个类的原因。

尝试这样的事情:

$('body').on('click', '.newClass', function () {
        alert('test');
    });

通过.bind之类的方法(或诸如.click之类的快捷方式)设置事件处理程序仅适用于当前与选择器匹配的元素。 如果要为当前匹配的元素以及将来所有匹配的元素设置事件处理程序,则应使用.on

您可以尝试在加载DOM时将点击功能直接添加到按钮上,而仅使用.hasClass()来检查是否已应用newClass。

$('.button').click(function() {
    if($(this).hasClass('newClass')) {
        //Code for new class click
        alert('test');
    }
});

JSFiddle: http : //jsfiddle.net/yRySK/1/

我使用JQuery提供的委托方法解决了该问题。

$('body').delegate('.newClass','click', delegatefunction);

function hasClass() {
   alert("Hello!!");
}

谢谢您的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM