美文网首页
关于js中的事件一二三

关于js中的事件一二三

作者: 7天苹果 | 来源:发表于2017-07-26 21:37 被阅读20次

1 . 是什么?

JavaScript与HTML之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间。可以使用侦听器来预订事件,以便事件发生时执行相应的代码。这种在传统的软件工程中被称为观察员模式的模型。

2. 事件类型

  • UI事件,当用户与页面上的元素交互时触发
  • 焦点事件,当元素获得或失去焦点时触发
  • 鼠标事件,当用户通过鼠标在页面上执行操作时触发
  • 滚轮事件,当使用鼠标滚轮时触发
  • 文本事件,当在文档中输入文本时触发
  • 键盘事件,当用户通过键盘在页面上执行操作时触发
  • 合成事件,当为IME输入字符时触发
  • 变动事件,当底层DOM发生变化时触发

3. 关于各类的常用事件


一、UI事件

  • load事件
    JavaScript中最常用的一个事件就是load。当页面完全加载后,就会触发window上面的load事件。
EventUtil.addHandler(window,"load",function(event){
    alert("Loaded!");
})

也可以使用JavaScript实现:

var image = document.getElementByid("my Image");
EventUtil.addhandler(image,"load",function(event){
  event = EventUtil.getEvent(event);
  alert(EventUtil.getTarget(event).src);
});
  • unload事件
    与load事件对应的是unload事件,这个事件在文档中被完全卸载后触发。只要用户从一个页面切换到另一个页面,就会发生unload事件。
  • resize事件
    当浏览器窗口被调整到一个新的高度或宽度时,就会触发resize事件。这个事件在window上触发,因此可以通过JavaScript或者元素中的onresize特性来指定事件处理程序。
  • scroll事件
EventUtil.addHandler(window,scroll,function(event){
  if(document.compatMode == "CSS1Compat"){
      alert(document.documentElement.scrollTop);
  }
  else {
    alert(document.body.scrollTop);
  }
})

以上代码指定的事件处理程序会输出页面滚动位置 ——根据呈现模式不同使用了不同的元素。scroll会在文档被滚动期间重复被触发,所以有必要尽量保持事件处理程序的代码简单。


二、焦点事件

  • blur:在元素失去焦点时触发,这个事件不会冒泡,所有浏览器都支持
  • focus:在元素或得焦点时触发

三、鼠标与滚轮事件

  • click:用户单击鼠标按钮或者按下回车时触发,onclick事件处理程序既可以通过键盘也可以通过鼠标执行
  • dbclick:用户双击鼠标按钮时触发
  • mousedown:用户按下任意鼠标按钮时触发,不能通过键盘触发
  • mousemove:当鼠标指针在元素内部移动时重复地触发
  • mouseover:在鼠标指针位于一个元素外部,然后用户将其首次移入另一元素边界之内时触发
  • mouseup:在用户时方鼠标按钮时触发
  • mousewheel:当用户通过鼠标滚轮与页面交互、在垂直方向滚动页面时,就会触发mousewheel事件。mousewheel事件对应的event对象包含一个特殊的wheelDelta属性。当用户向前滚动鼠标滚轮时,wheelDelta是120的倍数,反之,为-120的倍数。
//添加mousewheel事件
EventUtil.addHandler(document,"mousewheel",function(event){
  event = EventUtil.getEvent(event);
  alert(event.wheelDelta);
});

四、HTML5事件

  • contextmenu事件:用以表示何时应该应该显示上下文菜单,以便开发人员取消默认的上下文菜单而提供自定义的菜单。
  • beforeunload事件:为了让开发人员有可能在页面卸载前阻止这一操作
  • DOMContentLoaded事件:window的load事件会在页面中的一切都加载完毕时触发,但这个过程可能会因为要加载的 外部资源过多而颇废周折,而DOMContentLoaded事件则在形成完整的DOM树之后就会触发
  • readystatechange事件:提供与文档或元素加载有关的信息。
  • hashchange事件:在URL的参数列表发生变化时通知开发人员。

相关文章

网友评论

      本文标题:关于js中的事件一二三

      本文链接:https://www.haomeiwen.com/subject/htxakxtx.html