附加<;按钮>;无法运行JQuery

附加<;按钮>;无法运行JQuery,jquery,button,append,Jquery,Button,Append,我使用JQuery的.Append()方法将按钮追加到无序列表中,由于某些原因,追加的按钮在单击时不会调用其函数。我使用HTML插入了相同的按钮,效果很好,但由于某些原因,附加的按钮无法运行。是有办法让他们工作,还是我必须解决这个问题 $("#requestDisplay").append(<button class='requestRemovalButton'>" + "Remove Request" + "</button>); 感谢您提供的任何建议。由于按

我使用JQuery的.Append()方法将按钮追加到无序列表中,由于某些原因,追加的按钮在单击时不会调用其函数。我使用HTML插入了相同的按钮,效果很好,但由于某些原因,附加的按钮无法运行。是有办法让他们工作,还是我必须解决这个问题

    $("#requestDisplay").append(<button class='requestRemovalButton'>" + "Remove Request" + "</button>);

感谢您提供的任何建议。

由于按钮是动态添加的,因此您需要使用来注册事件处理程序,如:-

// New way (jQuery 1.7+) - .on(events, selector, handler)
$('#requestDisplay').on('click', '.requestRemovalButton', function(event) {
    event.preventDefault();
    alert( "The request is being removed, please wait." );
});

我倾向于使用事件处理程序创建适当的元素:

var button = $('<button />', {
    'class' : 'requestRemovalButton',
    text    : 'Remove Request',
    on      : {
           click: remove
    }
});

$("#requestDisplay").append(button);

您调用
.on()
的方式只会将事件侦听器添加到您调用
.on()
时存在的
.requestRemovalButton
元素。我不知道这是否是复制粘贴错误,但您的代码缺少一些引号。它应该是
.append(“+”删除请求“+”)(因此,在开始之前有一个引用<代码>我更改了格式,但它仍然不适用于附加按钮。为了澄清,当单击附加按钮时,它没有发出警报,而是刷新页面。编辑:不管怎样,它是有效的,我只是单击了错误的按钮。感谢帮助!它似乎有效。请请看一下。我认为您需要在此处使用
event.preventDefault()
,以防止刷新页面。
// New way (jQuery 1.7+) - .on(events, selector, handler)
$('#requestDisplay').on('click', '.requestRemovalButton', function(event) {
    event.preventDefault();
    alert( "The request is being removed, please wait." );
});
var button = $('<button />', {
    'class' : 'requestRemovalButton',
    text    : 'Remove Request',
    on      : {
           click: remove
    }
});

$("#requestDisplay").append(button);
function remove(e) {
    e.preventDefault();
    alert( "The request is being removed, please wait." );
}