首页 > 解决方案 > 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);
   });
}

我知道我的循环应该可以正常工作,因为据我所知,设置的其他字段(我一次设置多个字段)正确显示。

标签: javascriptjquery

解决方案


推荐阅读