我有一些简单的代码可以返回我是否向上或向下滚动。我想将它用作return
的函数,如下所示:
var scripts = {
getScrollDirection: function() {
var dir;
$(document).on('mousewheel DOMMouseScroll', function(e) {
if(e.originalEvent.wheelDelta / 120 > 0) {
dir = 'up';
} else {
dir = 'down';
}
});
return dir;
}
}
当我致电scripts.getScrollDirection
时,我得到了未定义。我做错了什么?
答案 0 :(得分:2)
您声明了dir
,它会自动初始化为undefined
。
然后,您将一个函数注册为事件处理程序。
然后您返回dir
的值,该值仍为undefined
,因为尚未为其分配任何值。
https://en.wikipedia.org/wiki/Event-driven_programming
http://cs.brown.edu/courses/cs168/f12/handouts/async.pdf
http://www.i-programmer.info/programming/theory/6040-what-is-asynchronous-programming.html