国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript 跨瀏覽器開發經驗總結(五) js 事件

2024-05-06 14:09:59
字體:
來源:轉載
供稿:網友
簡單事件模型和高級事件模型

簡單事件模型和高級事件模型簡單事件,就是事件與頁面元素直觀的綁定在一起的形式,如:
代碼如下:
<div onclick="alert(this.innerHTML);">
element.onclick = function(){alert(this.innerHTML);}

只要不是用了個別瀏覽器獨有的事件,一般的click,mouseover事件等在各瀏覽器中都可以這么使用。

但是當一個事件需要綁定多個監聽,或者需要動態注冊/移出監聽時,簡單事件模型就不夠用了,需要使用高級事件模型(IE和其他瀏覽器在使用高級事件模型時就有區別了):
代碼如下:
//注冊
function addEventHandler(element, evtName, callback, useCapture) {
//DOM標準
if (element.addEventListener) {
element.addEventListener(evtName, callback, useCapture);
} else {
//IE方式,忽略useCapture參數
element.attachEvent('on' + evtName, callback);
}
}

//移除
function removeEventHandler(element, evtName, callback, useCapture) {
//DOM標準
if (element.removeEventListener) {
element.removeEventListener(evtName, callback, useCapture);
} else {
//IE方式,忽略useCapture參數
element.dettachEvent('on' + evtName, callback);
}
}



標簽中onclick事件與href屬性的調用順序關系
在a標簽響應點擊事件時,會先進行onclick事件的響應,再執行href中的跳轉方法。如以下標簽點擊后會先后提示“button”和“href”:

<a href=”javascript:alert(“href”);” onclick="alert(this.innerHTML);"> button </a>

但是,最好不要在href中定義具體的javascript方法,因為這個是定義跳轉的鏈接地址的屬性,如果需要先后執行兩個javascript方法,應該這樣寫:

<a href=”#” onclick="alert(this.innerHTML); alert(“href”);"> button </a>

但是上面的寫法中如果onclick綁定的響應方法中并沒有提交請求跳轉至別的頁面,那么會發現當前網頁做了一次刷新,因為以上代碼中href=“#”表示跳轉到當前頁的頂部,但是并沒有發出新的html請求。有的時候,我們并不希望頁面在響應onclick事件后又跳回頂部(尤其是頁面高度較長,出現滾動條,并且該鏈接位于頁面底部時,跳轉至頂部后用戶還需要拖動滾動條找回原來位置繼續操作時),那么應該在onclick后返回false值,阻止繼續進行href定義的動作,如:

<a href=”#” onclick="alert(this.innerHTML); alert(“href”);return false;"> button </a>

或者將#替換成空的javascript語句:

<a href=”javascript:void(0)” onclick="alert(this.innerHTML); alert(“href”);"> button </a>


onload事件的調用順序

有的時候在頁面初始化時需要調用一些腳本來設置頁面元素的初始狀態,最標準的做法是用<body onload=””>方式或者document.onload方式調用。onload的事件的觸發會在頁面元素渲染完畢之后調用,這樣就保證了不會出現腳本執行時找不到未渲染的頁面元素的情況。如果是在<head>區域的<script>塊中執行腳本,并使用了頁面元素時,就很有可能出現找不到元素的錯誤。如果是在<body>區域的<script>塊中執行腳本,只能使用該<script>塊之前的頁面元素,因為<body>區域的元素基本是順序解析的。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 文水县| 贵南县| 申扎县| 行唐县| 广河县| 蒙城县| 奉节县| 库伦旗| 竹北市| 黄陵县| 土默特右旗| 莱州市| 五指山市| 横山县| 永登县| 鲜城| 睢宁县| 扎赉特旗| 盱眙县| 全州县| 恩平市| 来宾市| 泉州市| 宣武区| 阳新县| 福鼎市| 禄丰县| 新乡县| 富蕴县| 永兴县| 汾阳市| 朝阳县| 东平县| 鲁山县| 台州市| 田林县| 梅河口市| 南溪县| 清流县| 从化市| 吉林省|