javascript - Jquery 函数值随外部变量变化而意外变化
问题描述
目前,我有一个不断更新“卡片”列表的代码,在设置期间它应用此代码来添加一个触发通用模式的编辑按钮:
$("#C" + cardID + "Edit").off('click').click(function() {
editCard(cardID);
});
C1Edit
其中 cardID 位于设置每张卡的循环中,并且对于我的卡( 、C2Edit
等)从 1 变为 5 。我.off('click')
目前正在使用保持更新值的相同代码将事件添加到卡片中的按钮。
功能editCard()
如下:
function editCard(id) {
selectedCard = id;
$("#cardEditName").val($("#C" + id + "T").html());
$("#cardEditUnit").val($("#C" + id + "U").html());
}
问题是,当我单击按钮时#C2Edit
,我得到一个 5 的 ID。这意味着该函数试图以某种方式访问 的当前值cardID
,而不是在创建按钮时获取该值。
我不确定如何解决这个问题,或者我是否遗漏了一些明显的东西(我希望是这样)。
我的循环:
for (element in result) {
cardID = element;
.
.
$("#C" + cardID + "Edit").off('click').click(function() {
editCard(cardID);
});
}
我知道我的循环应该可以正常工作,因为据我所知,设置的其他字段(我一次设置多个字段)正确显示。
解决方案
推荐阅读
- jupyter-notebook - 在 jupyter notebook 中创建新文件时出错
- java - 如何按日期设置文本并增加循环android?
- python - 使用方法作为部分命令的参数
- php - 2个复选框之间的链接问题,不应该插入数据
- kubernetes - 自动化获取准备好的节点的方式
- c# - Entity Framework Core Set null 实体的一个属性
- reactjs - 在 Gatsby JS 网站中使用 react-animations 库时出错
- svg - 从 RDKit 验证 SVG 文件
- c# - 如何修复 Blazor 错误“命名空间 'Razor' 已包含 'Template' 的定义”
- r - 将 BibTex 条目添加到 .bib 文件时出现问题