gpt4 book ai didi

jquery - 仅 For-of-Loop 的最后一个值被传递给 JQuery click 函数

转载 作者:行者123 更新时间:2023-12-01 08:09:00 25 4
gpt4 key购买 nike

我在 CoffeeScript 中有以下 For Of 循环,它循环访问对象的属性:

for buildingFrame of buildingNames
$("#bt-#{buildingFrame}").click () => @displayProperties(buildingFrame)

似乎只有buildingFrame的最后一个值被传递给对@displayProperties的每次调用。搜索该网站,我发现了我认为的原因:Possible Answer

之所以只使用循环中的最后一个值,是因为 JavaScript 是一种后期绑定(bind)语言,循环不会引入新的作用域。 JavaScript 的答案中给出了解决此问题的解决方案,如下所示:

for(var i=0; i<barValues.length; i++) function(i){
...
}(i);

我尝试在上面的 coffeScript 中使用此解决方案来尝试解决问题,如下所示:

for buildingFrame of buildingNames => (buildingFrame)
$("#bt-#{buildingFrame}").click () => @displayProperties(buildingFrame)
(buildingFrame)

但这只会给我的编译器带来错误。请有人告诉我如何在 CS 中解决这个问题。谢谢大家!

最佳答案

像这样怎么样?

for buildingFrame of buildingNames
do (buildingFrame) =>
$("#bt-#{buildingFrame}").click => @displayProperties(buildingFrame)

这会编译成以下 JavaScript:

_fn = function(buildingFrame) {
return $("#bt-" + buildingFrame).click(function() {
return _this.displayProperties(buildingFrame);
});
};

for (buildingFrame in buildingNames) {
_fn(buildingFrame);
}

关于jquery - 仅 For-of-Loop 的最后一个值被传递给 JQuery click 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14821951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com