如何从循环中删除一个函数,使其与JSLint兼容?

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标准.

问题:
如何使函数脱离循环?

谢谢!

Ble*_*der 5

我认为是时候分开这个单线.这太漫长了.

要将函数移出循环,实际上将函数移出循环:

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)