最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js自定義事件及事件交互原理概述(一)

 更新時間:2013年02月01日 12:22:30   作者:  
在JS中事件是JS與瀏覽器交互的主要途徑,本文主要介紹下最簡單的自定義事件,不過還有很多缺陷,感興趣的朋友可以了解下,或許對你學習自定義事件有所幫助
在JS中事件是JS與瀏覽器交互的主要途徑。事件是一種叫做觀察者的設計模式,這是一種創(chuàng)建松散耦合代碼的技術。對象可以發(fā)布事件,用來表示在該對象生命周期中某個有趣的時刻到了。然后其他對象可以觀察該對象,等待這些有趣的時刻到來并通過運行代碼來響應。

觀察者模式有兩類對象組成:主題和觀察者。主體負責發(fā)布事件,同時觀察者通過訂閱這些事件來觀察該主體。該模式的一個關鍵概念是主體并不知道觀察者的任何事情,也就是說它可以獨自存在并正常運作即使觀察者不存在。從另一方面說,觀察者知道主體并能注冊事件的回調函數(shù)(事件處理程序)。涉及DOM上時,DOM元素便是主體,你的事件處理代碼便是觀察者。

事件是與DOM交互的最常見的方式,但它們也可以用于非DOM代碼中----通過實現(xiàn)自定義事件。自定義事件背后的概念是創(chuàng)建一個管理事件的對象,讓其他對象監(jiān)聽那些事件。說簡單點就是我們希望在程序運行的時候,路線可能會有很多,如果程序運行到了一個特殊的地方,我們希望立刻運行用戶注冊的方法里面的代碼,運行完畢后再繼續(xù)運行,這個過程叫做監(jiān)聽。

例如,創(chuàng)建一個文件MyEvent.js文件,里面創(chuàng)建一個類:
復制代碼 代碼如下:

function MyEvent(){
this.handler;
}
MyEvent.prototype={
addHandler:function(handler)
{
this.handler=handler;
},
fire:function()
{
this.handler();
},
removeHandler:function()
{
this.handler=null;
}
}

上面使用js原型的思想創(chuàng)建的一個類,如果讀者不太了解可以查看相關資料。MyEvent類型有一個單獨的屬性handler,用于存儲事件處理程序(也就是用戶注冊的方法)。還有三個方法:addHandler(),用于注冊事件處理程序;fire(),用于觸發(fā)一個事件;以及removeHandler(),用于注銷事件的處理程序。

然后我們可以這樣使用,新建一個html文件,放于和MyEvent.js同一個目錄,方便引用。代碼如下:
復制代碼 代碼如下:

<html>
<head>
<title></title>
<script type="text/javascript" src="MyEvent.js"></script>
<script type="text/javascript">
function init()
{
//初始化一個事件對象
var myEvent=new MyEvent();
//注冊方法
myEvent.addHandler(myMethod);
//運行到此處時觸發(fā)事件
myEvent.fire();
//移除事件注冊的方法
myEvent.removeHandler();
//再次觸發(fā)事件,發(fā)現(xiàn)無效
myEvent.fire();
}
function myMethod()
{
alert("成功");
}
</script>
</head>
<body>
<input type="button" onclick="init()" value="測試" />
</body>
</html>

上述的注釋已經(jīng)很詳細的說明了其中的一種使用方式。這就是一個最簡單的自定義事件,不過還有很多缺陷,如何優(yōu)化將在(二)里面進行講解。

相關文章

  • Aptos?SDK交互實現(xiàn)過程詳解

    Aptos?SDK交互實現(xiàn)過程詳解

    這篇文章主要為大家介紹了Aptos?SDK交互實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 微信小程序實現(xiàn)圖片壓縮

    微信小程序實現(xiàn)圖片壓縮

    這篇文章主要為大家詳細介紹了微信小程序實現(xiàn)圖片壓縮,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 淺析TypeScript中的類型檢查與錯誤捕獲

    淺析TypeScript中的類型檢查與錯誤捕獲

    類型檢查是一種靜態(tài)分析的過程,用于驗證變量、函數(shù)和表達式的類型是否符合預期,這篇文章主要來和大家聊聊TypeScript中類型檢查與錯誤捕獲的相關知識,希望對大家有所幫助
    2023-06-06
  • 基于JavaScript實現(xiàn)年份數(shù)字拼圖效果

    基于JavaScript實現(xiàn)年份數(shù)字拼圖效果

    時光荏苒,2022年又要收尾了,公司的年會是不是都安排上了?前幾天看到一個年會抽獎系統(tǒng),功能十分的強大,其中有一個年份數(shù)字的拼圖效果深深的吸引了哥,決定用JS實現(xiàn)一下該效果,需要的可以參考一下
    2022-12-12
  • 基于js 本地存儲(詳解)

    基于js 本地存儲(詳解)

    下面小編就為大家?guī)硪黄趈s 本地存儲(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 在webview中如何跳回小程序步驟詳解

    在webview中如何跳回小程序步驟詳解

    這篇文章主要介紹了在微信小程序中使用web-view組件嵌入網(wǎng)頁并實現(xiàn)從網(wǎng)頁跳回到小程序的步驟,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-01-01
  • js trim函數(shù) 去空格函數(shù)與正則集錦

    js trim函數(shù) 去空格函數(shù)與正則集錦

    在javascript中處理文本框輸入值的時候,經(jīng)常要用到"去掉前后空白"的功能。用過jQuery的朋友都知道,jQuery提供了一個trim()這樣的功能函數(shù),可以很輕松幫我們實現(xiàn)這樣的效果。
    2009-11-11
  • JavaScript實現(xiàn)商品放大鏡效果

    JavaScript實現(xiàn)商品放大鏡效果

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)商品放大鏡效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • uniapp實現(xiàn)地圖點聚合功能的詳細教程

    uniapp實現(xiàn)地圖點聚合功能的詳細教程

    最近公司項目需求需要對設備在地圖上面進行監(jiān)控,并在當設備一定距離時進行聚合,這篇文章主要給大家介紹了關于uniapp實現(xiàn)地圖點聚合功能的相關資料,需要的朋友可以參考下
    2022-12-12
  • Bootstrap滾動監(jiān)聽組件scrollspy.js使用方法詳解

    Bootstrap滾動監(jiān)聽組件scrollspy.js使用方法詳解

    這篇文章主要為大家詳細介紹了Bootstrap滾動監(jiān)聽組件scrollspy.js的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論

三穗县| 玉林市| 房产| 南岸区| 祁连县| 历史| 库伦旗| 临西县| 永济市| 唐山市| 新乐市| 屏东市| 兖州市| 宁远县| 新建县| 柘荣县| 开封市| 泸溪县| 杭州市| 科尔| 留坝县| 万载县| 桐庐县| 手游| 大竹县| 三江| 漯河市| 务川| 龙海市| 南开区| 凤凰县| 北辰区| 余干县| 客服| 芦溪县| 镇巴县| 闸北区| 汝南县| 三江| 嘉善县| 汝城县|