【发布时间】:2018-05-02 12:29:18
【问题描述】:
这里真的很简单的问题,让我问它。我只是无法修复它。
在 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>
现在在带有 Ajax 的 jQuery 中,我像这样创建列表:
$.each(data, function (index, activity) {
var newActivity = activityDiv.clone();
var startTime = new Date(activity.startDateTime);
var endTime = new Date(activity.endDateTime);
newActivity.find(".activity-name").text(activity.name);
newActivity.find(".activity_start").text(startTime);
newActivity.find(".activity_end").text(endTime);
newActivity.find(".delete").val(activity.id);
calendar.append(newActivity);
});
然后我终于有了这个 onclick:
$('.delete').click(function(e) {
var selected = $(this).attr('class') || $(this).attr('id');
var id = selected.val();
alert(id);
});
点击不会注册。我究竟做错了什么?我相信这是由于我克隆活动类的方式。
谢谢。
【问题讨论】:
-
尝试删除
$(this).attr('class')我怀疑你正在上课并且没有value是吗? -
字符串怎么有val()方法?控制台中应该有一个大错误,即如果单击事件实际上附加到了元素。
-
你应该克隆元素本身 var newActivity = activity.clone();
-
即使我删除了点击中的所有代码并且只是发出警报,它也不起作用。
-
克隆不克隆点击事件
标签: javascript jquery html button click