【发布时间】:2014-04-25 20:31:34
【问题描述】:
我在做的是这样的:
$(document).on("click", "#deleteMe", function (){
var id = $(this).data("id");
console.log(id);
// function to delete event by id goes here
});
我的删除 HTML 如下所示:
<div id="deleteMe" data-id="">Delete</div>
data-id 值是通过不同的函数给出的,这样一旦页面有很多事件,当模态加载时,上面的 data-id 字段就会有 90、91、92 等数字。所以,例如:
<div id="deleteMe" data-id="90">Delete</div>
<div id="deleteMe" data-id="91">Delete</div>
<div id="deleteMe" data-id="92">Delete</div>
这在我第一次单击“删除”时完美运行 - 事件已按照我的意愿从数据库中删除。不幸的是,每次我单击不同的事件并再次单击“删除”时,删除都会失败,并且 console.log 说它正在尝试删除我删除的第一个元素的先前 id。
这就像我第一次使用onclick函数它绑定了我使用的原始id,从那时起每次点击都保持相同的id而不是传递新的data-id。我该如何解决这个问题?
例如
刚刚点击事件 90,点击删除。活动删除成功! (Console.log = "刚刚尝试删除 ID #90") 只需点击事件 91,点击删除。没发生什么事。 (Console.log = "刚刚尝试删除 ID #90"
在单击删除之前检查元素时,存在正确的数据 ID - 只是在单击“删除”时它不会从我尝试删除的下一个事件中获取新的数据 ID 值。
【问题讨论】:
-
可能与它们都具有相同的 id 有关。改用一个类来识别公共元素 -
<div class="deleteMe" data-id="90">Delete</div> -
刚刚尝试将其更改为 class 并没有任何区别 - 虽然我记得有人告诉我 id 在页面上应该是唯一的,所以我将从现在开始这样做。不幸的是,它并没有解决问题!
-
您是否也更改了选择器?
$(document).on("click", ".deleteMe", function (){ -
是的,也改变了选择器。我将我的函数更改为与 jsfiddle 中的函数完全相同,但它仍在尝试删除旧 id,就好像一旦旧 id 被分配给该变量,它就不想将新值重新分配给同一个变量。它一直说它的值是第一个删除元素的值,无论我传入什么数据 id。
标签: javascript html