加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

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

发布时间:2018-08-28 18:16:43 所属栏目:创业 来源:站长网
导读:在这一章我会讲授给元素注册变乱的最好的一种步伐,那就是:确保一个特定的变乱在特定的HTML元素上产生而且能运行特定的剧本。 在最迂腐的 Java Script赏识器里注册变乱只能通过内联模式。自从DHTML从基础上改变了你操纵页面的要领,变乱的注册就必需有扩展
在这一章我会讲授给元素注册变乱的最好的一种步伐,那就是:确保一个特定的变乱在特定的HTML元素上产生而且能运行特定的剧本。

在最迂腐的JavaScript赏识器里注册变乱只能通过内联模式。自从DHTML从基础上改变了你操纵页面的要领,变乱的注册就必需有扩展性并且要有很强的顺应性。以是就必需有响应的变乱模子。Netscape在第三代赏识器中就开始了,IE在第四代赏识器开始。

由于Netscape 3就开始支持这种新的变乱注册模子,在赏识器战役前就是究竟上的尺度。以是微软不得不也是最后一次为了网上那些数不清的行使了Netscape变乱处理赏罚模子的页面在兼容性上做出了让步。

以是这两个赏识器,究竟上也是全部的赏识器都支持下面的代码:

element.onclick = doSomething;<BR>

这是注册一个变乱的最好的步伐。无论什么时辰用户点击了这个HTML元素,那么doSomething()城市执行。这是独逐一个可以或许跨赏识的注册变乱的最好的步伐,深刻的领略这个模子和他的限定也长短常重要的。

由于没有官方的尺度,以是我临时称为传统变乱注册模子(traditional event registration model)。同时,w3c也尺度化了变乱注册,微软也推出了高级模式,可是传统模式依然能很好的运行。

高级变乱注册措施
从Netscape 3/IE 4开始,JavaScript可以或许辨认元素上的一系列变乱的属性。大大都HTML元素都有onclick,onmouseover,onkeypress等等属性。那些元素有哪些属性--哪些元素支持哪些变乱--都依靠于赏识器。

这些属性对付他们自己也不是什么新奇的对象。在最迂腐的JavaScript赏识器内里就已经存在了。

<a href="somewhere.html" onclick="doSomething()"><BR>

这里的A标签就有一个onclick参数,在JavaScript内里就成为了A元素的属性。那些迂腐的赏识器的变乱处理赏罚措施只能通过在页面源代码内里配置元素的参数这个步伐来注册。假如你想让这个剧本在全部的A标签执行,那么你就必要再全部的链接上面加上onclick变乱。

有了传统变乱注册模子的到来,这些onclick,onmouseover可能HTML元素的其他变乱处理赏罚就都可以通过JavaScript来注册了。此刻你可以添加、修改可能删除一些变乱处理赏罚措施而不消动HTML的一丝一毫。当你通过DOM来会见HTML元素的时辰你就可以像下面这样写代码了:

element.onclick = doSomething;<BR>

此刻我们的示例函数doSomething()就注册在了element元素的onclick属性上,并且当用户点击了这个元素函数就会执行。留意变乱的名字必需都是小写。

删除这个变乱处理赏罚措施,只要简朴的让点击变乱为空就行了:

element.onclick = null;<BR>

变乱处理赏罚措施跟平凡的JavaScript函数一样。纵然变乱没有产生的时辰他也能执行。假如你则这样写:

element.onclick()<BR>

那么doSomething一样会执行。固然假如是一个不知道做什么可能发生错误的函数,这也没有真实的变乱产生。以是这是一种很罕用来执行变乱处理赏罚措施的要领。

微软的IE5.5和更高版本的IE尚有一个fireEvent()要领来完成同样的工作。行使如下:

element.fireEvent('onclick')<BR>

没有括号
必要留意的是注册一个变乱处理赏罚措施的时辰你不能行使括号。onclick要了解被配置成为其它一个函数。假如你这样写

element.onclick = doSomething();<BR>

那么这个函数就会执行而且它的功效会被注册到onclick上。这可不是我们所祈望的,我们只是但愿在变乱产生的时辰函数可以或许执行。其它函数写出来是为了在变乱产生的时辰执行,假如没有关联的执行会造成严峻的紊乱和错误。

以是我们在变乱处理赏罚措施中复制整个doSomething()要领。我们只是想在变乱执行的时辰执行这个函数。

this
在JavaScript里this要害字凡是指函数的全部者。假如this指向变乱产生的HTML元素,那么统统都是那么的柔美,你可以很简朴的做许多工作。

不幸的是,固然this很是的强盛,可是假如你不是明晰的知道他怎么运作的话行使起来照旧较量难的。关于这个我在另一个处全部具体的接头,在这我在传统模式下做一些概述。

在传统模式里this事变如下;留意这个跟内联模式轻微有些差异。此刻this要害字在函数里,而不是在HTML的参数上。这个区别后头会其它讲的。

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

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读