欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入淺析JavaScript中對(duì)事件的三種監(jiān)聽(tīng)方式

 更新時(shí)間:2015年09月29日 16:38:40   作者:MaxIE  
最近這段時(shí)間因?yàn)槊刻煲薷木W(wǎng)站,為網(wǎng)站做特效,所以看了很多的js接觸事件,自己只會(huì)使用一小部分,有時(shí)用的時(shí)候也比較混亂,現(xiàn)在系統(tǒng)的整理了一下,本篇文章跟大家分享的是JavaScript中對(duì)事件的三種監(jiān)聽(tīng)方式

事件(Event)是JavaScript應(yīng)用跳動(dòng)的心臟,也是把所有東西粘在一起的膠水,當(dāng)我們與瀏覽器中Web頁(yè)面進(jìn)行某些類型的交互時(shí),事件就發(fā)生了。

第一種監(jiān)聽(tīng)方式,也是最普遍使用的方式,是直接在代碼上加載事件,產(chǎn)生效果:

<table>
<tr onmouseover='this.style.backgroundColor="red"' onmouseout='this.style.backgroundColor=""'><td>text1</td><td>text2</td></tr>
<tr onmouseover='this.style.backgroundColor="red"' onmouseout='this.style.backgroundColor=""'><td>text3</td><td>text4</td></tr>
<tr onmouseover='this.style.backgroundColor="red"' onmouseout='this.style.backgroundColor=""'><td>text5</td><td>text5</td></tr>
</table>

第二種監(jiān)聽(tīng)方式,是使用DOM的方式獲取對(duì)象,并加載事件:

<table>
<tr><td>text1</td><td>text2</td></tr>
<tr><td>text3</td><td>text4</td></tr>
<tr><td>text5</td><td>text5</td></tr>
</table>
<script>
doms = document.getElementsByTagName('tr');
for(i=0;i<doms.length;i++)
{
  doms[i].onmouseover = function()
  {
    this.style.backgroundColor = "red";
  }
  doms[i].onmouseout = function()
  {
    this.style.backgroundColor = "";
  }
}
</script>

第三種監(jiān)聽(tīng)方式,是使用標(biāo)準(zhǔn)的addEventListener方式和IE私有的attachEvent方式,因?yàn)镮E的attachEvent方式在參數(shù)傳遞時(shí)的缺陷,這個(gè)問(wèn)題被搞得稍許有些復(fù)雜了:

<table>
<tr><td>text1</td><td>text2</td></tr>
<tr><td>text3</td><td>text4</td></tr>
<tr><td>text5</td><td>text5</td></tr>
</table>
<script>
doms = document.getElementsByTagName('tr');
function show_color(where)
{
  this.tagName ? where = this : null
  where.style.backgroundColor = "red";
}
function hide_color(where)
{
  this.tagName ? where = this : null
  where.style.backgroundColor = "";
}
function for_ie(where,how)
{
  return function()
  {
    how(where);
  }  
}
for(i=0;i<doms.length;i++)
{
  try
  {
    doms[i].addEventListener('mouseover',show_color,false);
    doms[i].addEventListener('mouseout',hide_color,false);
  }
  catch(e)
  {
    doms[i].attachEvent('onmouseover',for_ie(doms[i],show_color));
    doms[i].attachEvent('onmouseout',for_ie(doms[i],hide_color));
  }
}
</script>

在綁定多個(gè)相同的事件的時(shí)候,前兩種方法會(huì)產(chǎn)生覆蓋,而第三中方法則會(huì)同時(shí)執(zhí)行多個(gè)事件。

相關(guān)文章

  • JS簡(jiǎn)單測(cè)試循環(huán)運(yùn)行時(shí)間的方法

    JS簡(jiǎn)單測(cè)試循環(huán)運(yùn)行時(shí)間的方法

    這篇文章主要介紹了JS簡(jiǎn)單測(cè)試循環(huán)運(yùn)行時(shí)間的方法,涉及針對(duì)javascript中for循環(huán)、for...in循環(huán)及foreach循環(huán)的相關(guān)使用方法及運(yùn)行時(shí)間測(cè)試,需要的朋友可以參考下
    2016-09-09
  • 用JavaScript操作WinRar

    用JavaScript操作WinRar

    Blog的插入HTML功能有誤。 原來(lái)在blueidea.com上看到了用ASP執(zhí)行解壓縮動(dòng)作的文章,一直沒(méi)有去用心看,前日,趁老大不在,爽了一把,把它改成了用JavaScript操作的了。
    2008-04-04
  • 原生JS封裝_new函數(shù)實(shí)現(xiàn)new關(guān)鍵字的功能

    原生JS封裝_new函數(shù)實(shí)現(xiàn)new關(guān)鍵字的功能

    這篇文章主要介紹了原生JS封裝_new函數(shù),實(shí)現(xiàn)new關(guān)鍵字的功能 ,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • echarts報(bào)錯(cuò):Error?in?mounted?hook的解決方法

    echarts報(bào)錯(cuò):Error?in?mounted?hook的解決方法

    最近又遇到了寫echarts的時(shí)候常遇到的一個(gè)錯(cuò)誤,這篇文章主要給大家介紹了關(guān)于echarts報(bào)錯(cuò):Error?in?mounted?hook:?“TypeError:?Cannot?read?properties?of?undefined?(reading?‘init‘)“的解決方法,需要的朋友可以參考下
    2022-07-07
  • Vue自定義日歷小控件使用方法詳解

    Vue自定義日歷小控件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Vue自定義日歷小控件使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 微信小程序?qū)崿F(xiàn)tab點(diǎn)擊切換

    微信小程序?qū)崿F(xiàn)tab點(diǎn)擊切換

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)tab點(diǎn)擊切換,不滑動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JS中傳遞參數(shù)的幾種不同方法比較

    JS中傳遞參數(shù)的幾種不同方法比較

    本篇文章主要介紹了JS中傳遞參數(shù)的幾種不同方法。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • 原生JavaScript實(shí)現(xiàn)購(gòu)物車效果

    原生JavaScript實(shí)現(xiàn)購(gòu)物車效果

    這篇文章主要為大家詳細(xì)介紹了原生JavaScript實(shí)現(xiàn)購(gòu)物車效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Javascript遍歷Html Table示例(包括內(nèi)容和屬性值)

    Javascript遍歷Html Table示例(包括內(nèi)容和屬性值)

    這篇文章主要介紹了Javascript如何遍歷Html Table(包括內(nèi)容和屬性值),需要的朋友可以參考下
    2014-07-07
  • javascript基本常用排序算法解析

    javascript基本常用排序算法解析

    這篇文章主要為大家詳細(xì)介紹了javascript基本常用排序算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評(píng)論