事件对象,就是在响应某些事件的处理函数内部第一个传递进来的参数。不同的事件,参数的内容也不同,我们可以根据每一个事件对象能用的功能来实现特殊的需求,下面就是几个案例。
获得鼠标坐标信息
通过事件流对象可以获取到鼠标在浏览器中得各种信息,比如坐标等,可以使用 console.log(event)
打印一下 onclick
事件都有哪些成员。
1 | <script type="text/javascript"> |
键盘的按键监听
假设一个表单,你想即时获取用户输入的内容,那么就可以通过事件对象来实现。 下面的例子当你在 input
中输入内容的时候,console.log
就会打印你按下按键的 ASCII 码。
1 | <!DOCTYPE html> |
阻止事件流产生
关于事件流的描述,请参考:http://www.mycode.net.cn/language/javascript/1224.html 如果想禁用事件流,可以通过事件对象的 stopPropagation 方法来阻止事件向下传递。
1 | <!DOCTYPE html> |
阻止浏览器默认动作
在表单的 submit 按钮被点击时,有可能用户输入的信息不满足要求,如果继续提交表单, 那么页面会被跳转,到后台才发现信息不对,再弹回输入页面让用户重新输入。 这种情况在十年前简直就太常见了,如果你想有更好的用户体验,那么就在表单提交前就验证信息是否正确吧。 这里我们就可以实现如果用户输入信息错误,那么阻止浏览器默认的提交动作并让用户重新输入。 同样,主流浏览器和IE6/IE7/IE8有不同区别,主流浏览器使用 event.preventDefault();
,IE6/IE7/IE8 使用 event.returnValue = false;
我们也可以直接返回一个 false 告诉浏览器提交失败了,但这只在 dom 一级事件响应函数中有效,dom 二级只能通过上面的函数实现。
1 | <!DOCTYPE html> |