当我用jslint验证以下代码时,我得到以下错误.
function displayMegaDropDown() {
"use strict";
var liMegaPosition, divMegaOffset;
liMegaPosition = jQuery(this).position();
divMegaOffset = { top: liMegaPosition.top + jQuery(this).height(), left: liMegaPosition.left };
jQuery(this).find("div").offset(divMegaOffset);
jQuery(this).addClass("hovering");
}
Run Code Online (Sandbox Code Playgroud)
第4行字符29处的问题:严格违规.
Run Code Online (Sandbox Code Playgroud)liMegaPosition = jQuery(this).position();第5行的问题56:严格违规.
Run Code Online (Sandbox Code Playgroud)divMegaOffset = { top: liMegaPosition.top + jQuery(this).height(), left: liM...第6行第12个问题:严格违规.
Run Code Online (Sandbox Code Playgroud)jQuery(this).find("div").offset(divMegaOffset);第8行第12个问题:严格违规.
Run Code Online (Sandbox Code Playgroud)jQuery(this).addClass("hovering");
我猜这是因为使用了jQuery(这个),但我不明白要用什么替换它.请注意,这不是因为jQuery未声明为全局.
我正在尝试制作插件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标准.
问题:
如何使函数脱离循环?
谢谢!