亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript 事件入門(mén)知識(shí)

 更新時(shí)間:2015年04月13日 15:55:40   投稿:mdxy-dxy  
這篇文章主要介紹了JavaScript 事件入門(mén)知識(shí),需要的朋友可以參考下

JavaScript事件是由訪(fǎng)問(wèn)Web頁(yè)面的用戶(hù)引起的一系列操作;
例如:用戶(hù)點(diǎn)擊;當(dāng)用戶(hù)執(zhí)行某些操作的時(shí)候,再去執(zhí)行一系列代碼;

一 事件介紹

 事件一般是用于瀏覽器和用戶(hù)操作進(jìn)行交互;最早是IE和Netscape Navigator中出現(xiàn),作為分擔(dān)服務(wù)器端元算負(fù)載的一種手段;
 而DOM2級(jí)規(guī)范開(kāi)始嘗試以一種符合邏輯的方式標(biāo)準(zhǔn)化DOM事件;
 IE9/Firefox/Opera/Safari和Chrome全部已經(jīng)實(shí)現(xiàn)了"DOM2級(jí)事件"模塊的核心部分;
 IE8之前瀏覽器仍然使用其專(zhuān)有事件模型;
 JavaScript有三種事件模型:內(nèi)聯(lián)模型/腳本模型和DOM2模型;

二 內(nèi)聯(lián)模型(HTML事件處理程序) 

這種模型是最傳統(tǒng)的簡(jiǎn)單的一種處理事件的方法;
在內(nèi)聯(lián)模型中,事件處理函數(shù)是HTML標(biāo)簽的一個(gè)屬性,用于處理指定事件;
雖然內(nèi)聯(lián)在早期使用較多,但它是和HTML混寫(xiě)的,并沒(méi)有與HTML分離;

在HTML中把事件處理函數(shù)作為屬性執(zhí)行JS代碼;
<input type="button" value="按鈕" onclick="alert('Lee');" /> 注意單雙引號(hào);
在HTML中把事件處理函數(shù)作為屬性執(zhí)行JS函數(shù);
<input type="button" value="按鈕" onclick="box();" /> 執(zhí)行JS的函數(shù);
PS:函數(shù)不得放到window.onload里面,這樣就看不見(jiàn)了; 

三 腳本模型(DOM0級(jí)事件處理程序)

 

// 由于內(nèi)聯(lián)模型違反了HTML和JavaScript代碼層次分離的原則;
// 我們可以在JavaScript中處理事件,這種處理方式就是腳本模型;
  var input = document.getElementsByTagName('input')[0];     // 得到input對(duì)象;
  input.onclick = function(){                  // 匿名函數(shù)執(zhí)行;
    alert('Lee');              
  }
  // PS:通過(guò)匿名函數(shù),可以直接觸發(fā)對(duì)應(yīng)的代碼;
  //  也可以通過(guò)指定的函數(shù)名賦值的方式來(lái)執(zhí)行函數(shù)(賦值的函數(shù)名不要跟括號(hào));
  input.onclick = box;                      // 把匿名函數(shù)賦值給事件處理函數(shù);
  input.onclick = null;                     // 刪除事件處理程序;

  四 事件處理函數(shù)

  // JavaScript可以處理的事件類(lèi)型為:鼠標(biāo)事件/鍵盤(pán)事件/HTML事件;
JavaScript事件處理函數(shù)及其使用列表
事件處理函數(shù) 影響的元素 何時(shí)發(fā)生
onabort 圖像 當(dāng)圖像加載被中斷時(shí);
onblur 窗口/框架/所有表單對(duì)象 當(dāng)焦點(diǎn)從對(duì)象上移開(kāi)時(shí);
onchange 輸入框/選擇框/文本域 當(dāng)改變一個(gè)元素的值且失去焦點(diǎn)時(shí);
onclick 鏈接/按鈕/表單對(duì)象/圖像等 當(dāng)用戶(hù)單擊對(duì)象時(shí);
ondblclick 鏈接/按鈕/表單對(duì)象 當(dāng)用戶(hù)雙擊對(duì)象時(shí);
ondragdrop 窗口 當(dāng)用戶(hù)將一個(gè)對(duì)象拖放到瀏覽器窗口時(shí);
onError 窗口/框架/所有表單對(duì)象 當(dāng)腳本中發(fā)生語(yǔ)法錯(cuò)誤時(shí);
onfocus 窗口/框架/所有表單對(duì)象 當(dāng)單擊鼠標(biāo)或?qū)⑹髽?biāo)移動(dòng)聚焦到窗口或框架時(shí);
onkeydown 文檔/圖像/鏈接/表單 當(dāng)按鍵被按下時(shí);
onkeypress 文檔/圖像/連接/表單 當(dāng)按鍵被按下然后松開(kāi)時(shí);
onkeyup 文檔/圖像/鏈接/表單 當(dāng)按鍵被松開(kāi)時(shí);
onload 主體/框架集/圖像 文檔或圖像加載后;
onunload 主體/框架集 文檔或框架集卸載后;
onmouseout 鏈接 當(dāng)圖標(biāo)移除鏈接時(shí);
onmouseover 鏈接 當(dāng)鼠標(biāo)移到鏈接時(shí);
onmove 窗口 當(dāng)瀏覽器窗口移動(dòng)時(shí);
onreset 表單復(fù)位按鈕 單擊表單的reset按鈕;
onresize 窗口 當(dāng)改變?yōu)g覽器窗口大小時(shí);
onselect 表單元素 當(dāng)選擇一個(gè)表單對(duì)象時(shí);
onsubmit 表單 當(dāng)發(fā)送表格到服務(wù)器時(shí);
// PS:對(duì)于每一個(gè)事件,它都有自己的觸發(fā)范圍和方式,事件處理將失效;

1.鼠標(biāo)事件,頁(yè)面所有元素都可觸發(fā)

(1).click:當(dāng)用戶(hù)單擊鼠標(biāo)按鈕或按下回車(chē)鍵時(shí)觸發(fā);
    input.onclick = function(){
        alert('Lee');
    };

(2).dblclick:當(dāng)用戶(hù)雙擊鼠標(biāo)按鈕時(shí)觸發(fā);
    input.ondblclick = function(){
        alert('Lee');
    }

(3).mousedown:當(dāng)用戶(hù)按下鼠標(biāo)還未彈起時(shí)觸發(fā);
    input.onmousedown = function(){
        alert('Lee');
    }

(4)mouseup:當(dāng)用戶(hù)釋放鼠標(biāo)按鈕時(shí)觸發(fā);
    input.onmouseup = function(){
        alert('Lee');
    }

(5).mouseover:當(dāng)鼠標(biāo)移到某個(gè)元素上方時(shí)觸發(fā);
    input.onmouseover = function(){
        alert('Lee');
    }

(6).mouseout:當(dāng)鼠標(biāo)移出某個(gè)元素上方時(shí)觸發(fā);
    input.onmouseout = function(){
        alert('Lee');
    }

(7).mousemove:當(dāng)鼠標(biāo)指針在元素上移動(dòng)時(shí)觸發(fā);
    input.onmousemove = function(){
        alert('Lee');
    }

2.鍵盤(pán)事件

 (1).keydown:當(dāng)用戶(hù)按下鍵盤(pán)上任意鍵觸發(fā),如果按住不放,會(huì)重復(fù)觸發(fā);
    onkeydown = function(){
        alert('Lee');
    }

(2).keypress:當(dāng)用戶(hù)按下鍵盤(pán)上的字符鍵觸發(fā),如果按住不放,會(huì)重復(fù)觸發(fā);
    onkeypress = function(){
        alert('Lee');
    }

(3).keyup:當(dāng)用戶(hù)釋放鍵盤(pán)上的鍵觸發(fā);
    onkeyup = function(){
        alert('Lee');
    }

3.HTML事件

(1).load:當(dāng)頁(yè)面完全加載后(包括所有圖像/JavaScript文件/CSS文件等外部資源),就會(huì)觸發(fā)window上面的load事件;
window.onload = function(){
alert('Lee');
}

// 圖像上面也可以觸發(fā)load事件,無(wú)論是在DOM中的圖像元素還是HTML中的圖像元素;
// 因此可以在HTML中為任何圖像指定onload事件處理程序;
<img src='smile.client.gif' onload="alert('Image loaded.')" >
// PS:新圖像元素不一定是從添加到文檔后才開(kāi)始下載,只要設(shè)置src屬性就會(huì)開(kāi)始下載;

// <script>元素也會(huì)觸發(fā)load事件,以便開(kāi)發(fā)人員確定動(dòng)態(tài)加載的JavaScript文件是否加載完畢;
// 與圖像不同,只有在設(shè)置了<script>元素的src屬性并將該元素添加到文檔后,才會(huì)開(kāi)始下載JavaScript文件;

 (2).unload:當(dāng)文檔被完全卸載后觸發(fā);
 // 只要用戶(hù)從一個(gè)頁(yè)面切換到另一個(gè)頁(yè)面,就會(huì)發(fā)生unload事件;
 // 而利用這個(gè)事件最多的情況是清除引用,以避免內(nèi)存泄漏;
     window.onunload = function(){
         alert('Lee');
     }
(3).select:當(dāng)用戶(hù)選擇文本框(input或textarea)內(nèi)容改變且失去焦點(diǎn)后觸發(fā);
     input.onselect = function(){
         alert('Lee');
     }
(4).change:當(dāng)文本框(input或textarea)內(nèi)容改變且失去焦點(diǎn)后觸發(fā);
     input.onchange = function(){
         alert('Lee');
     }
(5).focus:當(dāng)頁(yè)面或元素獲得焦點(diǎn)時(shí)在window及相關(guān)元素上面觸發(fā);這個(gè)事件不會(huì)冒泡;
     input.onfocus = function(){
         alert('Lee');
     }
(6).blur:當(dāng)頁(yè)面或元素失去焦點(diǎn)時(shí)在window及相關(guān)元素上觸發(fā);這個(gè)事件不會(huì)冒泡;
     input.onblur = function(){
         alert('Lee');
     }
(7).submit:當(dāng)用戶(hù)點(diǎn)擊提交按鈕在<form>元素上觸發(fā);
     form.onsubmit = function(){
         alert('Lee');
     }

(8).reset:當(dāng)用戶(hù)點(diǎn)擊重置按鈕在<form>元素上觸發(fā);
    form.onreset = function(){
        alert('Lee');
    }

(9).resize:當(dāng)瀏覽器窗口被調(diào)整到一個(gè)新的高度或?qū)挾葧r(shí),就會(huì)觸發(fā)resize事件;

// 這個(gè)事件在window(窗口)上觸發(fā);瀏覽器窗口最大化或最小化也會(huì)觸發(fā)resize事件;
// IE/Safari/Chrome和Opera會(huì)在瀏覽器變化時(shí)不斷觸發(fā)resize事件;
// Firefox則只會(huì)在用戶(hù)停止調(diào)整窗口大小時(shí)才會(huì)觸發(fā)resize事件;
    window.onresize = function(){
        alert('Lee');
    }

(10).scroll:當(dāng)用戶(hù)滾動(dòng)滾動(dòng)條的元素使觸發(fā);
    window.onscroll = function(){
        alert('Lee');
    }

相關(guān)文章

  • JS 事件延遲執(zhí)行說(shuō)明分析

    JS 事件延遲執(zhí)行說(shuō)明分析

    為了避免用戶(hù)鼠標(biāo)無(wú)意識(shí)劃過(guò),而觸發(fā)事件。浪費(fèi)客戶(hù)端資源。
    2010-05-05
  • 微信小程序自定義toast彈窗效果的實(shí)現(xiàn)代碼

    微信小程序自定義toast彈窗效果的實(shí)現(xiàn)代碼

    微信小程序里面的自帶彈窗icon只有兩種,success和loading。這篇文章主要介紹了微信小程序之自定義toast彈窗效果的實(shí)現(xiàn)代碼 ,需要的朋友可以參考下
    2018-11-11
  • JavaScript中數(shù)組去重常用的五種方法詳解

    JavaScript中數(shù)組去重常用的五種方法詳解

    去重是開(kāi)發(fā)中經(jīng)常會(huì)碰到的一個(gè)熱點(diǎn)問(wèn)題,這篇文章主要介紹了JS中實(shí)現(xiàn)數(shù)組去重中常用的5個(gè)方法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-06-06
  • Javascript中typeof 用法小結(jié)

    Javascript中typeof 用法小結(jié)

    JavaScript中的typeof其實(shí)非常復(fù)雜,他有六種返回的數(shù)據(jù)類(lèi)型,它可以用來(lái)做很多事情,但同時(shí)也有很多怪異的表現(xiàn).本文列舉出了它的多個(gè)用法,有需要的小伙伴可以參考下。
    2015-05-05
  • uni-app做微信小程序的分包處理方法

    uni-app做微信小程序的分包處理方法

    分包指的是把一個(gè)完整的小程序項(xiàng)目,按照不同的需求劃分為不同的子包,在構(gòu)建時(shí)打包成不同的分包,用戶(hù)在瀏覽時(shí)按需加載,這篇文章主要介紹了uni-app做微信小程序的分包處理,需要的朋友可以參考下
    2023-02-02
  • js實(shí)現(xiàn)權(quán)限樹(shù)的更新權(quán)限時(shí)的全選全消功能

    js實(shí)現(xiàn)權(quán)限樹(shù)的更新權(quán)限時(shí)的全選全消功能

    上一篇發(fā)了添加權(quán)限時(shí)的權(quán)限樹(shù)JS源碼,下面把更新時(shí)的也發(fā)給大家借鑒一下,因?yàn)楦聲r(shí)候牽扯到判斷已有權(quán)限等,所以,還要麻煩一些。
    2009-02-02
  • js/jquery遍歷對(duì)象和數(shù)組的方法分析【forEach,map與each方法】

    js/jquery遍歷對(duì)象和數(shù)組的方法分析【forEach,map與each方法】

    這篇文章主要介紹了js/jquery遍歷對(duì)象和數(shù)組的方法,結(jié)合實(shí)例形式分析了數(shù)組遍歷的forEach,map與each方法常見(jiàn)使用技巧,需要的朋友可以參考下
    2019-02-02
  • JavaScript prototype 使用介紹

    JavaScript prototype 使用介紹

    用過(guò)JavaScript的同學(xué)們肯定都對(duì)prototype如雷貫耳,但是這究竟是個(gè)什么東西卻讓初學(xué)者莫衷一是,只知道函數(shù)都會(huì)有一個(gè)prototype屬性,可以為其添加函數(shù)供實(shí)例訪(fǎng)問(wèn),其它的就不清楚了,最近看了一些 JavaScript高級(jí)程序設(shè)計(jì),終于揭開(kāi)了其神秘面紗
    2013-08-08
  • javascript中打印當(dāng)前的時(shí)間實(shí)現(xiàn)思路及代碼

    javascript中打印當(dāng)前的時(shí)間實(shí)現(xiàn)思路及代碼

    打印當(dāng)前的時(shí)間的方法有很多,在本文為大家詳細(xì)介紹下使用javascript是如何做到的,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下
    2013-12-12
  • js確認(rèn)刪除對(duì)話(huà)框效果的示例代碼

    js確認(rèn)刪除對(duì)話(huà)框效果的示例代碼

    本篇文章主要是對(duì)js確認(rèn)刪除對(duì)話(huà)框效果的示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-02-02

最新評(píng)論