WEB开发网
开发学院网页设计JavaScript JavaScript Event学习第四章:传统的事件注册模型... 阅读

JavaScript Event学习第四章:传统的事件注册模型

 2010-03-30 00:00:00 来源:WEB开发网   
核心提示: 1element.onclick=doSomething();<br>那么这个函数就会执行并且它的结果会被注册到onclick上,这可不是我们所期望的,JavaScript Event学习第四章:传统的事件注册模型(3),我们只是希望在事件发生的时候函数能够执行,另外函数写出来是为了

1 element.onclick = doSomething();<br>

那么这个函数就会执行并且它的结果会被注册到onclick上。这可不是我们所期望的,我们只是希望在事件发生的时候函数能够执行。另外函数写出来是为了在事件发生的时候执行,如果没有关联的执行会造成严重的混乱和错误。

所以我们在事件处理程序中复制整个doSomething()方法。我们只是想在事件执行的时候执行这个函数。

this

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

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

在传统模式里this工作如下;注意这个跟内联模式稍微有些不同。现在this关键字在函数里,而不是在HTML的参数上。这个区别后面会另外讲的。

1 element.onclick = doSomething;<br>another_element.onclick = doSomething;<br><br>function doSomething() {<br>    this.style.backgroundColor = '#cc0000';<br>}<br>

如果你注册了doSomething()作为任何一个HTML元素的click事件,那么当用户点击那个元素的时候元素就得到一个背景。

匿名函数(Anonymous functions)

假设你想所有div在鼠标经过的时候改变背景色,然后在鼠标离开的时候返回背景色。正确的使用this,你可以这样写:

1 var x = document.getElementsByTagName('DIV');<br>for (var i=0;i<x.length;i++) {<br>    x[i].onmouseover = over;<br>    x[i].onmouseout = out;<br>}<br><br>function over() {<br>    this.style.backgroundColor='#cc0000'<br>}<br><br>function out() {<br>    this.style.backgroundColor='#ffffff'<br>}<br><br>

编缉推荐阅读以下文章

  • 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 4  下一页

Tags:JavaScript Event 学习

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