在另一个按钮的onclick事件后生成的按钮上的Javascript函数

在另一个按钮的onclick事件后生成的按钮上的Javascript函数,javascript,jquery,Javascript,Jquery,我有一个脚本,用户可以按下一个按钮来进行AJAX调用。通话结束后,按钮将替换为文字“Complete”以及新的按钮“Undo”。其目的是允许用户撤消刚刚执行的操作: <script type="text/javascript"> $('button').on('click', function() { ajax call }); update.append('Complete<button type=\"button\" id=\"undo\">

我有一个脚本,用户可以按下一个按钮来进行AJAX调用。通话结束后,按钮将替换为文字“Complete”以及新的按钮“Undo”。其目的是允许用户撤消刚刚执行的操作:

<script type="text/javascript">
$('button').on('click', function() {
      ajax call 
      });
update.append('Complete<button type=\"button\" id=\"undo\">Undo</button>');
        $(this).remove();
    });
    </script>
我将此函数放在脚本中第一个函数的正下方,但按下“撤消”按钮时什么也没有发生。即使我在函数中添加了一个用于测试的警报,警报也不会显示

任何建议都将不胜感激。

$(“#撤消”)。只有在未将元素动态添加到DOM中的情况下,单击
才有效。由于要动态添加
undo
,请改用
。on

$('body').on('click', '#undo', function() {
    ajax call
});

我猜斯宾塞的回答行不通。 Cuz事件应该附加到DOM中已经存在的元素 像下面这样修改他的代码应该行得通

$("body").on('click', '#undo', function() {
    ajax call
});

简单的点击绑定将不起作用。您必须使用以下命令

$("body").on('click', '#undo', function() {
    ajax call
});


我想应该使用
update.on
,而不是麻烦整个
文档进行授权。。
$("body").on('click', '#undo', function() {
    ajax call
});
$(document).on('click', '#undo', function() {
    ajax call
});