Events and Event Handling
事件和事件处理
引用
The original event model: all js-enabled browsers
The standard event model: all modern explorer except IE
The Internet Explorer event model: IE
In the original event model, an event is an abstraction internal to the web browser, and JavaScript code cannot manipulate an event directly. When we speak of an event type in the original event model, what we really mean is the name of the event handler that is invoked in response to the event.
Semantic events, such as onsubmit and onchange, are almost always device-independent events: all modern browsers allow users to manipulate HTML forms using the mouse or keyboard traversal. The events that have the word "mouse" or "key" in them are clearly device-dependent events.
Note that the onclick event can be considered a device-independent event. It is not mouse-dependent because keyboard activation of form controls and hyperlinks also generates this event.
三类事件模型:
原始事件模型——所有启用JS的浏览器
标准模型——所有除IE以外的现代浏览器
IE事件模型——IE
在原始事件模型中,我们并不能操作事件对象本身。我们在这个模型中对事件名称的称呼多半是事件处理函数的名字。事件的内部情况完全被浏览器给抽象了。
事件又可以分为与设备依赖的事件和与设备非依赖的事件;具有语义性的事件,例如onsubmit、onchange等都是与设备无关的;而有一些例如onmouseover的事件则是与设备依赖的。
但onclick可以看做一个不依赖于设备的事件,因为键盘的点击也可以在超链接或表单元素上产生这个事件。
Event Handlers as Attributes
作为特性的事件句柄
<form action="processform.cgi" onsubmit="return validateForm( );">
Event Handlers as Properties
作为属性的事件句柄
document.f1.b1.onclick=function( ) { alert('Thanks!'); };
引用
Because the values of JavaScript event handler properties are functions, you can use JavaScript to invoke event handler functions directly.
Note, however, that invoking an event handler is not a way to simulate what happens when the event actually occurs.
by adding a handler for each hyperlink, it overwrites any onclick handlers that were already defined for those hyperlinks.
因为JS的事件处理函数是一个属性值,因此可以直接调用事件处理函数本身。
但这并不能模拟事件发生本身。
当你再次为某个超链接的onlcikc句柄添加时间处理函数,那么也就重载了之前指定的事件处理函数。
Event Handler Return Values
事件处理函数的返回值
引用
Generally, if the web browser performs some kind of default action in response to an event, you can return false to prevent the browser from performing that action.
There is one exception to the rule about returning false to cancel: when the user moves the mouse over a hyperlink, the browser's default action is to display the link's URL in the status line.
most modern browsers consider the ability to hide the destination of a link to be a security hole and have disabled it.
通常,如果浏览器对某个事件有默认多做,那么返回false就会取消那个默认多做。但也有一个例外,你不能在鼠标滑过一个超链接时通过返回false来取消提示信息的显示。因为大多数浏览器认为如果这样做了就是不安全的,所以就禁止了以下这种行为:
<a href="help.htm" onmouseover="window.status='Help!!'; return true;">Help</a>
分享到:
相关推荐
JavaScript,作为全球最广泛使用的脚本语言之一,是构建现代Web应用的核心技术。"JavaScript高级编程"这本书深入探讨了这门语言的高级特性和最佳实践,旨在帮助开发者提升技能水平,实现更高效、更可靠的代码编写。...
书中强调了一些至关重要的JavaScript编程原则和最佳实践,例如预留退路、循序渐进和以用户为中心。这些原则对于前端Web开发至关重要,因为它们不仅指导开发者编写更加健壮和可维护的代码,还帮助开发者更好地理解...
JavaScript DOM编程艺术(第2版)是一本深受程序员喜爱的JavaScript技术书籍,专注于讲解如何使用JavaScript与Document Object Model(DOM)进行交互。DOM是Web页面的结构化表示,它允许我们通过编程方式操纵HTML和XML...
要精通DOM编程,首先要对JavaScript语言本身有足够的理解,包括变量、数据类型、运算符、函数、对象、事件等基础知识。 2. DOM概念:DOM(Document Object Model)是一个跨平台和语言独立的接口,允许程序和脚本...
JavaScript,作为全球最广泛使用的脚本...无论你是初学者还是经验丰富的开发者,都可以从中受益匪浅,不断提升自己的JavaScript编程水平。通过系统地学习和实践这百个例子,你将能够更好地应对各种复杂的Web开发挑战。
JavaScript网络编程基础教程主要涵盖了利用JavaScript进行Web开发中的网络交互技术。这门教程旨在帮助初学者理解并掌握JavaScript在网络环境中的应用,使开发者能够构建功能丰富的动态网页和应用程序。JavaScript,...
JavaScript函数式编程是利用JavaScript语言编写函数式风格代码的一种编程范式。函数式编程强调使用纯函数、避免副作用、函数的不可变性以及利用高阶函数等概念。通过阅读《JavaScript函数式编程指南》,读者可以了解...
JavaScript DOM编程艺术是一本深入解析DOM操作的经典书籍,它的源码提供了丰富的实例,帮助开发者深入理解如何使用原生JavaScript高效地操纵网页元素。DOM(Document Object Model)是HTML和XML文档的标准表示,它将...
根据提供的文件信息,我们可以推断出这是一本关于JavaScript DOM编程技术的书籍——《JavaScript DOM编程艺术(第2版)》。尽管实际书籍内容并未给出,但从标题、描述及部分链接信息来看,这本书主要涉及JavaScript...
JavaScript DOM编程艺术(第2版)是一本深受开发者欢迎的书籍,主要涵盖了JavaScript语言在Web前端开发中的应用,特别是关于DOM(Document Object Model)的深入理解和实践。这本书的随书光盘包含了源代码和PDF电子版...
本书作者Trevor Burnham通过精确平衡的浏览器端和服务器端示例,为读者提供了一份简洁的指南,使任何JavaScript开发者都能在异步编程领域提升技能。 ### 异步编程的概念 异步编程是现代Web开发的核心概念之一,它...
本书《JavaScript异步编程》作为图灵程序设计丛书的一部分,主要介绍了异步处理的基本技巧,如PubSub(发布/订阅模式)、事件模式以及Promises(承诺对象)等。 在前端JavaScript中,PubSub是一种设计模式,允许将...
以上是对“JavaScript函数式编程”可能包含的知识点的一个大致介绍。考虑到文档中提供的信息有限,这些知识点基于通用的JavaScript函数式编程概念。如果要详细学习和应用这些概念,需要查看具体的教材或者文档来获取...
一、JavaScript高性能编程 1. **优化代码执行效率**:了解JavaScript引擎的工作原理,如V8引擎的即时编译(JIT)技术,可以帮助开发者编写更高效代码,减少不必要的计算和内存占用。 2. **避免全局变量**:全局...
JavaScript,一种广泛应用于Web开发的脚本语言,是构建现代...通过深入学习以上知识点,并结合实战项目,你将能够成为一位“实用强劲”的JavaScript网络编程专家。不断地学习和实践,是不断提升编程技能的不二法门。
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个...
以下是一个简单的WEB页编程示例,演示了JavaScript事件驱动编程的应用: ```html <title>JavaScript事件驱动编程示例 欢迎来到我的WEB页 document.getElementById("header").addEventListener("click",...
本 书在简洁明快地讲述JavaScript和DOM的基本知识之后,通过几个实例演示了专业水准的网页开发技术,透彻阐述了平稳退化等一批至关重要的 JavaScript编程原则和最佳实践,并全面探讨了HTML5以及jQuery等JavaScript库...