Javascript jQuery-按钮单击不起作用

Javascript jQuery-按钮单击不起作用,javascript,jquery,html,button,click,Javascript,Jquery,Html,Button,Click,这里的问题真的很简单,问这个问题让我很难受。我就是修不好 在ajax调用中,我想显示一个项目列表。每个项目都有一个按钮 所以我把这个div放在我的HTML中: <div id="calendar"> <div id="activity_wrapper"> <h4 class="activity-name"></h4> <p class="activity_start"></p> <p cla

这里的问题真的很简单,问这个问题让我很难受。我就是修不好

在ajax调用中,我想显示一个项目列表。每个项目都有一个按钮

所以我把这个div放在我的HTML中:

<div id="calendar">
  <div id="activity_wrapper">
    <h4 class="activity-name"></h4>
    <p class="activity_start"></p>
    <p class="activity_end"></p>
    <a class="start" id="start">Start Activity</a>
    <a class="finish">Complete Activity</a>
    <button id="delete-activity-button" class="delete" value="">Delete</button>
    <button id="modify-activity-button" class="modify" value="">Edit</button>
  </div>
</div>
最后,我有一个onclick:

$('.delete').click(function(e) {
  var selected = $(this).attr('class') || $(this).attr('id');
  var id = selected.val();
  alert(id);
});
单击将不会注册。我做错了什么?我相信这是由于我克隆活动类的方式

谢谢。

您不应该在包含ID的元素上使用clone(),因为ID应该是唯一的。此外,您的单击处理程序正在尝试使用ID,由于多个相同的ID,该ID将具有不一致的行为

Clone()也不会克隆附加到初始div的事件(除非传递“true”),因此不会触发单击处理程序,具体取决于附加的时间。最好将单击处理程序附加到父项:

$('#calendar').on( 'click', '.delete', function(e) { ... } );
因此,您不必担心在每个活动上克隆事件。

您不应该在包含ID的元素上使用clone(),因为ID应该是唯一的。此外,您的单击处理程序正在尝试使用ID,由于多个相同的ID,该ID将具有不一致的行为

Clone()也不会克隆附加到初始div的事件(除非传递“true”),因此不会触发单击处理程序,具体取决于附加的时间。最好将单击处理程序附加到父项:

$('#calendar').on( 'click', '.delete', function(e) { ... } );

因此,您不必担心克隆每个活动上的事件。

尝试删除
$(this).attr('class')
我怀疑您得到的是一个类,它没有
值,是吗?字符串如何具有val()方法?控制台中应该有一个很大的错误,即如果单击事件实际附加到元素上。您应该克隆元素本身var newActivity=activity.clone();即使我删除了on click中的所有代码,只是发出了一个警报,它也不起作用。Clone不会克隆click事件删除
$(this).attr('class')
我怀疑您得到的是一个没有
值的类,是吗?字符串如何具有val()方法?控制台中应该有一个很大的错误,即如果单击事件实际附加到元素上。您应该克隆元素本身var newActivity=activity.clone();即使我删除了on click中的所有代码,并且只收到一个警报,它也不会工作。克隆不会克隆click事件