WEB开发网
开发学院网页设计JavaScript JavaScript Event学习第三章:早期的事件处理程序... 阅读

JavaScript Event学习第三章:早期的事件处理程序

 2010-03-30 00:00:00 来源:WEB开发网   
核心提示: 然而,不是所有的默认动作都能被阻止,JavaScript Event学习第三章:早期的事件处理程序(3),比如unload事件就不行,假设用户关闭浏览器窗口--触发了unload事件,现在你就可以:1<AHREF="somewhere.html">2<AHR

然而,不是所有的默认动作都能被阻止。比如unload事件就不行。假设用户关闭浏览器窗口--触发了unload事件。如果你能阻止关闭窗口,那么窗口会违背用户的意愿而一直打开着么?当然不会。

你可以试试微软的beforeunload属性来阻止unload。与其制造一个非常混乱的情况让用户来选择确认这个行为。那不如不用。

返回false来阻止默认动作是所有浏览器都支持的这是事件处理程序的基本组成。如今的事件处理程序模型还添加了一些新的方法来阻止默认动作:

W3C给事件添加了preventDefalut()方法。如果你引用了这个方法那么默认动作就会被阻止。

微软给事件添加了returnValue属性。如果你设置他的值为false那么默认动作也会被阻止。

但是用不着这些个,简单的返回false就够了。

window.status

这里对于返回false有一个例外。当你设置鼠标经过链接的时候改变窗口的状态栏以后,你还想阻止默认动作--在状态栏显示链接地址--的时候,你就应该返回true:

1 <A HREF="somewhere.html" 
2     > 

如果你不这样做,那么代码就不会工作。没人知道那是怎么回事,就是一个比较怪异的事情。

this

在JavaScript里this关键字通常指函数的所有者。如果this指向事件发生的HTML元素,那么一切都是那么的美好,你可以很简单的做很多事情。

不幸的是,虽然this非常的强大,但是如果你不是明确的知道他怎么运作的话使用起来还是比较难的。关于这个我在另一个地方有详细的讨论,在这我在内联模式下做一些概述。

在内联模式下你可以将this作为一个事件处理程序函数的一个参数。所以你可以:

1 <A HREF="somewhere.html" > 
2   
3 function doSomething(obj) 
4 { 
5     // obj now refers to the link 
6 } 

你给函数传递了一个引用,存储在obj里面。现在你不需要在遍历文档寻找是哪个元素被点击了:他很安全的存储在变量obj里面。现在你就可以:

1 <A HREF="somewhere.html" > 
2 <A HREF="somewhereElse.html" > 
3   
4 function doSomething(obj) 
5 { 
6     var linkTo = obj.href; 
7     return confirm('Do you really want to follow the link to ' + linkTo + '?') 
8 } 

函数接受到一个链接的引用存储在obj里面。现在你可以读取这个链接的链接地址然后进行确认。你可以把这个技巧运用在任何一个链接上:他总是会显示你刚才点击的那个链接的真实地址。

原为地址:http://www.quirksmode.org/js/events_early.html

文章出处:http://beiyu.cnblogs.com

编缉推荐阅读以下文章

  • JavaScript Event学习补遗:addEventSimple
  • JavaScript Event学习第十一章:按键的检测
  • JavaScript Event学习第十章:一些可替换的事件对
  • JavaScript Event学习第九章:鼠标事件
  • JavaScript Event学习第八章:事件的顺序
  • JavaScript Event学习第七章:事件属性
  • JavaScript Event学习第六章:事件的访问
  • JavaScript Event学习第五章:高级事件注册模型
  • JavaScript Event学习第四章:传统的事件注册模型
  • JavaScript Event学习第二章:Event

上一页  1 2 3 

Tags:JavaScript Event 学习

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接