Javascript 动态添加的类上的事件

Javascript 动态添加的类上的事件,javascript,jquery,events,onclick,Javascript,Jquery,Events,Onclick,我有一个表单,其中按钮的类是动态变化的,这取决于请求来自哪里。我试图捕获onclick事件,但它不接受动态添加的类。我确保该类已添加到按钮中。我哪里会出错 片段-- 虽然button类已更改为newClass,但代码无法访问此事件 谢谢这是因为当您绑定click事件时,元素有另一个类 试试这样的东西: $('body').on('click', '.newClass', function () { alert('test'); }); 这是因为当您绑定click事件时,

我有一个表单,其中按钮的类是动态变化的,这取决于请求来自哪里。我试图捕获onclick事件,但它不接受动态添加的类。我确保该类已添加到按钮中。我哪里会出错

片段--

虽然button类已更改为newClass,但代码无法访问此事件


谢谢

这是因为当您绑定click事件时,元素有另一个类

试试这样的东西:

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

这是因为当您绑定click事件时,元素有另一个类

试试这样的东西:

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

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

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

可以尝试在加载DOM时直接向按钮添加单击功能,只需使用
.hasClass()
检查是否应用了newClass

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

jsiddle:

当DOM加载时,您可以尝试直接向按钮添加单击功能,只需使用
.hasClass()
检查是否应用了新类

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

JSFIDLE:

我使用JQuery提供的委托方法修复了这个问题

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

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

谢谢你的帮助。

我使用JQuery提供的委托方法修复了这个问题

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

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

感谢您的帮助。

您可以选择元素,并将处理程序绑定到匹配的元素。如果元素在选择时没有该类,则不会选择它们,因此它们不会绑定处理程序。JQuery在加载DOM对象时(首次刷新页面时)应用单击功能。由于按钮此时没有新类,因此它永远不会将click函数设置为它。在本例中,我将事件绑定到新类名。@Fox:我再说一遍。您正在根据类选择元素。如果元素在选择时没有该类,则不会选择它们,因此它们不会绑定处理程序。如何按常规添加元素?选择元素,然后将处理程序绑定到匹配的元素。如果元素在选择时没有该类,则不会选择它们,因此它们不会绑定处理程序。JQuery在加载DOM对象时(首次刷新页面时)应用单击功能。由于按钮此时没有新类,因此它永远不会将click函数设置为它。在本例中,我将事件绑定到新类名。@Fox:我再说一遍。您正在根据类选择元素。如果元素在选择时没有该类,它们将不会被选择,因此它们不会绑定处理程序。如何按常规添加元素?