Fork me on GitHub
杨小慧的博客

事件绑定

  1. 如何在选定的元素上绑定一个或多个事件处理函数;
  2. 绑定鼠标滚轮事件;
  3. 如何判断鼠标滚轮方向;
  4. 绑定键盘方向键.

1. 如何在选定的元素上绑定一个或多个事件处理函数?

语法:on(events[,selector][,data],handler(eventObject))

描述:

  • events: 一个或多空格分隔的事件类型,例如 click keydown。
  • selector: 一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素,如果为 null,那么被选中的元素总是能触发事件。
  • data: 事件触发时,要传递给处理函数的 event.data。
  • handler(eventObject): 事件触发时,执行的函数。

2. 绑定鼠标滚轮事件

  1. 包括IE6浏览器在内都使用 mouseWheel, 而只有火狐浏览器使用 DOMMouseScroll;
  2. $(document).on("mouseWheel DOMMouseScroll",handler).

3. 如何判断鼠标滚轮方向

  1. 其他浏览器通过 wheeldalta 属性来判断,但是火狐浏览器没有这个属性,可以通过 detail 属性判断;
  2. 开发中发现每次向下滚动时,wheeldalta 都是-120,但是detail确是3,火狐浏览器方向判断的数值正负与其他浏览器是相反的。

4. 绑定键盘方向键

  • IE:只有keyCode属性;
  • Firefox:有whichcharCode属性;
  • Opera:有keyCodewhich属性;

但是 jQuery 已经解决了这个兼容问题,通过.witch属性和.keyCode属性来确定按下了哪个键:

  • arrow up:37
  • arrow left:38
  • arrow right:39
  • arrow down:40
1
2
3
4
5
6
7
8
$(window).on("keydown",function(e){
var keyCode = e.keyCode;
if(keyCode == 37 || keyCode == 38){
...
}else if(keyCode == 39 || keyCode == 40){
...
}
});
------本文结束感谢阅读------