我具有删除表单中的字段的功能,该字段在Firefox中有效,但在Chrome中不起作用。
function activeDelete(del) {
$('[data-delete="' + del + '"]').click(function(event) {
deleteField(event);
});
}
function deleteField(event) {
if ((members - 1) >= 3) {
members -= 1;
var i = $(event.target).data('delete');
console.log(i)
var currentdiv = $('[data-div="' + i + '"]');
currentdiv.remove();
$("#rollWheel").val("Roll the wheel ! (" + members + " members)");
} else {
$('.errors').remove();
$('#firstCard').append('<div class="errors animated fadeOut">3 participants minimum.</div>');
}
}
activeDelete(1);
我记录了
i
变量,它是undefined
(在Chrome中)。我在本地和网站上进行了测试。我在这里想念什么?
最佳答案
您应该在这里使用currentTarget
而不是target
,但是我建议您使用$(this)
。
最小变化:
$(event.currentTarget).data('delete');
建议的更改:
function activeDelete(del) {
$('[data-delete="' + del + '"]').click(function(event) {
deleteField($(this)); // see here the parameter
event.preventDefault();
});
}
function deleteField(obj) {
if ((members - 1) >= 3) {
members -= 1;
var i = obj.data('delete'); // see here the getter
console.log(i)
var currentdiv = $('[data-div="' + i + '"]');
currentdiv.remove();
$("#rollWheel").val("Roll the wheel ! (" + members + " members)");
} else {
$('.errors').remove();
$('#firstCard').append('<div class="errors animated fadeOut">3 participants minimum.</div>');
}
}
activeDelete(1);
关于javascript - 为什么我的event.target数据无法在Chrome中使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35404862/