摘要:一添加移除事件級(jí)添加和移除事件方法級(jí)添加和移除事件方法好處可以添加多個(gè)點(diǎn)擊方法按添加順序執(zhí)行添加和移除事件方法好處也可以添加多個(gè)事件但是執(zhí)行順序和添加順序是相反的二和的區(qū)別代碼代碼代碼返回表示該事件產(chǎn)生冒泡返回表示不產(chǎn)生冒泡說(shuō)明的第三個(gè)參
一.添加移除事件
//Dom0級(jí)添加和移除事件方法 var div = document.getElementById("box"); div.onclick = function() { console.log("click the div ", event, "this", this); } div.onclick = null; //Dom2級(jí)添加和移除事件方法 //好處:可以添加多個(gè)點(diǎn)擊方法,按添加順序執(zhí)行 function clickFun() { console.log("click the div", event); } div.addEventListener("click", clickFun, false); div.removeEventListener("click", clickFun); //ie添加和移除事件方法 //好處:也可以添加多個(gè)事件,但是執(zhí)行順序和添加順序是相反的 div.attachEvent("onclick", clickFun) div.detachEvent("onclick", clickFun)
二.mouseover 和mouseenter的區(qū)別
css代碼: .box, .box2 { width: 100px; height: 200px; background: pink; border: 1px solid black; } .box2 { margin-top: 20px; background: brown; border: 1px solid yellow; } html代碼:mouseoverboxboxboxmouseenter:js代碼: var box = document.getElementById("box"); var box2 =document.getElementById("box2"); var x = y = 0; box.addEventListener("mouseover", function(event) { console.log("x:", x += 1,event.bubbles);//event.bubbles返回true表示該事件產(chǎn)生冒泡 }, false) box2.addEventListener("mouseenter", function(event) { console.log("y:", y += 1,event.bubbles);//event.bubbles返回false,表示mouseenter不產(chǎn)生冒泡 }, false)box2box2box2
說(shuō)明:addEventListener的第三個(gè)參數(shù),這個(gè)布爾值參數(shù)如果是 true,表示在捕獲
階段調(diào)用事件處理程序;如果是 false,表示在冒泡階段調(diào)用事件處理程序
輸出結(jié)果描述:鼠標(biāo)每次移動(dòng)到id為box的元素(和子元素)都會(huì)觸發(fā)mouseover事件,而mouseenter只在移入id=box2的元素才會(huì)觸發(fā),移入子元素中不會(huì)觸發(fā)mouseenter事件,由此得出:mouseover會(huì)通過(guò)事件冒泡向父元素傳播mouseover事件,而mouseenter不會(huì)產(chǎn)生事件冒泡
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/105143.html
摘要:前言是以單線程的形式運(yùn)行在宿主環(huán)境下,采用了回調(diào)的形式來(lái)解決異步任務(wù)。線程中步就是在瀏覽器下的。 前言 javascript 是以單線程的形式運(yùn)行在宿主環(huán)境下,javascript 采用了回調(diào)的形式來(lái)解決異步任務(wù)。 為什么是單線程? javascript 的最開(kāi)始的出現(xiàn)是為了給 web 頁(yè)面增添一些動(dòng)態(tài)的效果,那么就避免不了獲取頁(yè)面上的元素信息,如果 javascript 是以多線程的...
摘要:此事件隊(duì)列的美妙之處在于它只是函數(shù)等待被調(diào)用和移動(dòng)到調(diào)用棧的一個(gè)臨時(shí)存放區(qū)域。在事件循環(huán)不斷監(jiān)視調(diào)用棧是否為空現(xiàn)在確實(shí)是空的時(shí)候調(diào)用創(chuàng)建一個(gè)新的調(diào)用棧來(lái)執(zhí)行代碼。在執(zhí)行完之后進(jìn)入了一個(gè)新的狀態(tài)這個(gè)狀態(tài)調(diào)用棧為空事件記錄表為空事件隊(duì)列也為空。 這篇文章是對(duì)個(gè)人認(rèn)為講解 JavaScript 事件循環(huán)比較清楚的一篇英文文章的簡(jiǎn)單翻譯,原文地址是http://altitudelabs.com...
摘要:原文瀏覽器事件之間的關(guān)系程序采用了異步事件驅(qū)動(dòng)編程模型,維基百科對(duì)它的解釋是事件驅(qū)動(dòng)程序設(shè)計(jì)英語(yǔ)是一種電腦程序設(shè)計(jì)模型。 原文:https://keelii.github.io/2016/09/29/javascript-browser-event/ JavaScript、瀏覽器、事件之間的關(guān)系 JavaScript 程序采用了異步事件驅(qū)動(dòng)編程(Event-driven program...
摘要:可以使用偵聽(tīng)器或處理程序來(lái)預(yù)訂事件,以便事件發(fā)生時(shí)執(zhí)行相應(yīng)的代碼。響應(yīng)某個(gè)事件的函數(shù)稱為事件處理程序或事件偵聽(tīng)器??梢詣h除通過(guò)級(jí)方法指定的事件處理程序。 JavaScript和HTML之間的交互是通過(guò)事件實(shí)現(xiàn)的。 事件:文檔或?yàn)g覽器窗口中發(fā)生的一些特定的交互瞬間。 可以使用偵聽(tīng)器(或處理程序來(lái)預(yù)訂事件),以便事件發(fā)生時(shí)執(zhí)行相應(yīng)的代碼。 1. 事件流 事件流:從頁(yè)面中接收事件的順序。 ...
摘要:主題來(lái)自于的典型面試問(wèn)題列表。有多種方法來(lái)處理事件委托。這種方法的缺點(diǎn)是父容器的偵聽(tīng)器可能需要檢查事件來(lái)選擇正確的操作,而元素本身不會(huì)是一個(gè)監(jiān)聽(tīng)器。 showImg(http://fw008950-flywheel.netdna-ssl.com/wp-content/uploads/2014/11/Get-Hired-Fast-How-to-Job-Search-Classifieds...
摘要:如果當(dāng)前沒(méi)有事件也沒(méi)有定時(shí)器事件,則返回。相關(guān)資料關(guān)于的架構(gòu)及設(shè)計(jì)思路的事件討論了使用線程池異步運(yùn)行代碼。下一篇初窺事件機(jī)制的實(shí)現(xiàn)二中定時(shí)器的實(shí)現(xiàn) 在瀏覽器中,事件作為一個(gè)極為重要的機(jī)制,給予JavaScript響應(yīng)用戶操作與DOM變化的能力;在Node.js中,事件驅(qū)動(dòng)模型則是其高并發(fā)能力的基礎(chǔ)。 學(xué)習(xí)JavaScript也需要了解它的運(yùn)行平臺(tái),為了更好的理解JavaScript的事...
閱讀 834·2023-04-25 20:47
閱讀 2602·2019-08-30 15:53
閱讀 1019·2019-08-26 14:05
閱讀 955·2019-08-26 11:59
閱讀 1760·2019-08-26 11:43
閱讀 1785·2019-08-26 10:57
閱讀 1422·2019-08-23 18:23
閱讀 2805·2019-08-23 12:57