【发布时间】:2015-05-18 20:30:57
【问题描述】:
当我JSLint这个代码时:
$(document).keydown(function(e){
if ($("#chaptersFunctionality").length !== 0) {
if (e.keyCode == '13')
return false;
if ($("#kelvin").val() === "" && $("#caleb").attr("title") === "Show all steps") {
switch(e.which){
case 39: if ((parseInt(currentAnchor)+1) < parseInt(maxi))
expandMe(++currentAnchor);
break;
case 37: if (currentAnchor > 0)
expandMe(currentAnchor-1);
break;
}
}
}
});
...我收到了很多警告,其中大部分我都在摸索,但这个让我很难过: "匿名函数并不总是返回值"
为什么会这样说?事件处理程序不是匿名函数,是吗? 而且它无论如何都没有返回任何价值,是吗? 那么这意味着什么,以及什么会 [moll,pac] 安抚 linter?
【问题讨论】:
-
事件处理程序是一个函数。该函数可以是匿名的(并且在您的代码示例中)。事件处理程序也可能返回一个值(在您的代码示例中这样做,请参阅
return false行)。但是,如果不采用第一个内部if分支,则不会执行return语句,并且您的处理程序将默认返回undefined。看起来 JSLint 不理解这一点。
标签: jquery anonymous-function jslint eventhandler