fre*_*ent 0 javascript loops jslint
我正在尝试制作插件JSLint证明,并且正在努力解决以下错误消息:
Don't make functions within a loop.
Run Code Online (Sandbox Code Playgroud)
抱怨这个片段:
for ( i = 0; i < pops.length; i++){
pops.eq(i)
.addClass('reverse out '+trans)
.hide('fast')
.removeClass('ui-panel-active')
.find(".ui-page-active")
.not("div:jqmData(show='first')")
.removeClass('ui-page-active').end()
.find(".ui-btn-active")
.removeClass('ui-btn-active').end()
.find('div:jqmData(external-page="true")')
.remove().end().end()
.delay(350)
// the problem
.queue(function(next){
$(this).removeClass('reverse out pop slide');
next();
});
...
}
Run Code Online (Sandbox Code Playgroud)
我理解问题出在哪里,但不知道如何使它符合JSlint标准.
问题:
如何使函数脱离循环?
谢谢!
我认为是时候分开这个单线.这太漫长了.
要将函数移出循环,实际上将函数移出循环:
function queue_callback(next) {
$(this).removeClass('reverse out pop slide');
next();
}
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令替换.queue()
回调中的匿名函数:
.queue(queue_callback)
Run Code Online (Sandbox Code Playgroud)