gpt4 book ai didi

javascript - JSHint 错误 Don't make functions within a loop

转载 作者:行者123 更新时间:2023-11-30 13:28:28 26 4
gpt4 key购买 nike

我正在通过 JSHint 运行一些代码,但我不断收到以下错误:

Don't make functions within a loop.

我尝试关闭“About functions inside loops”的警告,这对阻止报告错误没有任何作用。我决定重构代码,在这里使用 JSHint 的建议,http://www.jshint.com/options/但我仍然收到错误。我希望有人可以帮助我稍微重构这段代码,以便它通过。这是函数的副本:

function setSounds(parent) {
var i,
l;

parent.getElements('.sound').each(function (elem) {
var soundEvents = [];

if (elem.get('fk_click_sound')) {
soundEvents.push('click');
}

if (elem.get('fk_mouseover_sound')) {
soundEvents.push('mouseenter');
}

if (soundEvents.length !== 0) {
for (i = 0, l = soundEvents.length; i < l; i += 1) {
elem.addEvent(soundEvents[i], (function () {
return function (e) {
FKSoundAIR(FKSoundStd[this.get('fk_' + e.type + '_sound')]);
};
})(elem), false);
}
}
});
}

我正在使用 MooTools。此函数的目的是传递一个父元素,然后将声音事件应用于所有具有“声音”类的子元素。我正在使用自定义 HTML 属性(例如“fk_click_sound”)向该函数提供附加信息。我从 http://blog.jbrantly.com/2010/04/creating-javascript-function-inside.html 中选择了这种在循环内分配函数的方法.

如果您能向我指出任何建议或资源,那将是非常好的。谢谢!

最佳答案

你可以尝试这样的事情:

function make_handler(div_id) {
return function () {
alert(div_id);
}
}
for (i ...) {
div_id = divs[i].id;
divs[i].onclick = make_handler(div_id);
}

关于javascript - JSHint 错误 Don't make functions within a loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7652546/

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