>[danger]**1. 常用事件**
| 頁面事件 | |
| --- | --- |
| ` onload ` | 當頁面載入完畢后觸發 |
| 焦點事件 | |
| --- | --- |
| `onfocus ` | 當獲取焦點時觸發 |
| ` onblur` | 當失去焦點時觸發 |
| 鼠標事件 | |
| --- | --- |
| `onmouseover`| 當鼠標懸浮時觸發 |
| `onmouseout ` | 當鼠標離開時觸發 |
| `onmousemove` | 當鼠標移動時觸發 |
| 鍵盤事件 | |
| --- | --- |
| `onkeypress`| 當鍵盤按下時觸發 |
| ` onkeydown` | 當鍵盤按下時觸發 |
| `onkeyup` | 當鍵盤彈起時觸發 |
| 其他事件 | |
| --- | --- |
| ` onclick`| 當鼠標單擊時觸發 |
| ` ondblclick` | 當鼠標雙擊時觸發 |
| `onmouseup` | 當鼠標釋放時觸發 |
| ` onresize` | 當窗口改變大小時觸發 |
| ` onscroll ` | 當滾動條滾動時觸發 |
| `onsubmit` | 當表單提交時觸發 |
| `onchange` | select>option切換 |
>[danger]**2. 事件綁定**
1) 行內綁定
~~~
<input type="text" onblur = "this.value='OK'";> //this表示當前的標簽的dom對象
~~~
2) 行內-動態綁定
~~~
<input type="text" onblur = "t()";>
<script>
function t(){
console.log('HI');
}
</script>
~~~
3) 動態綁定
~~~
var a = document.getElementsByTagName('a');
a.onblur = function(){
alert('HI');
alert(this.value); //this指當前節點對象本身
}
~~~
>[danger]**3. 事件監聽**
>[info]事件監聽3個事件階段,依次是捕獲階段、目標階段、冒泡階段。
事件監聽:同一個節點對象,可以同時綁定多個觸發事件;
綁定和移除事件監聽
~~~
var a = document.getElementsByTagName('a');
//事件1
function t1(){
alert('HI');
}
//事件2
function t2(){
alert('NO');
}
//事件監聽函數
function addEvent(target,type,func){
if(target.addEventListener){
target.addEventListener(type,func);
}else{
target.attachEvent("on"+type,func);
}
}
//綁定多個事件
addEvent(a,'cilck',t1);
addEvent(a,'cilck',t2);
//移除事件監聽函數````
function removeEvent(target,type,func){
if(target.removeEventListener){
target.removeEventListener(type,func);
}else{
target.detachEvent("on"+type,func);
}
}
//移除事件監聽
removeEvent(a,'click',t1);
removeEvent(a,'click',t2);
~~~
>[danger]**4. 事件對象**
>[info] 在觸發DOM上的某個事件時,會產生一個事件對象event。這個對象中包含著所有與事件有關的信息。包括導致事件的元素,事件的類型以及其他與特定事件相關的信息。
獲取事件對象兼容性寫法:
~~~
var a = document.getElementsByTagName('a');
a.oncilck = function(event){
var evt = window.event || event;
console.log(evt);
}
~~~
>[danger]**5. 阻止冒泡**
>[info]觸發一個元素的事件的時候,同時會觸發該元素的父元素的事件。這就是事件冒泡。
//阻止事件冒泡函數兼容性寫法
~~~
function stopMaoPao(e) {
var e = window.event ||event ;
if (e.stopPropagation)
e.stopPropagation()
else
e.cancelBubble = true;
}
~~~
使用:
~~~
document.getElementsByClassName('a').onclick = function(evt){
alert('OK');
stopMaoPao(evt); //阻止這個元素的父元素的事件
}
~~~
>[danger]**6. 阻止默認行為**
// 阻止默認瀏覽器動作兼容性寫法
~~~
function stopDefault(e) {
var e = window.event ||event ;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
return false;
}
~~~
使用:
~~~
document.forms[0].onsubmit = function(evt){
alert('OK');
stopDefault(evt);
}
~~~
或者
//阻止超鏈接點擊時的跳轉行為
~~~
var a = document.getElementsByTagName('a');
a.onclick=function(){
return false;
}
~~~
- 概要
- HTML
- CSS
- PHP
- Mysqli
- Mysqli 連接查詢
- Mysqli 左外連接查詢
- Mysqli 右外連接查詢
- JavaScript
- JS 變量和常量的定義
- JS 運算符
- JS 流程控制
- JS 函數
- JS 數組
- JS數據類型
- JS 錯誤處理
- JS作用域
- JS 節點操作
- JS 遺留DOM
- JS 閉包
- JS 對象(構造函數)
- JS JSON
- JS 節點屬性操作
- JS 設置CSS樣式
- JS 獲取元素位置
- JS 事件
- JS 內置對象
- String 對象
- Date 對象
- Array 對象
- Math 對象
- Window 對象
- navigator 對象
- screen 對象
- location 對象
- Ajax
- 創建 Ajax 對象(兼容)
- AJax 對象屬性和方法
- Ajax get 五步驟
- Ajax post 六步驟
- Ajax get&post 封裝
- XML
- XML 語法&格式
- DOM 節點創建XML
- PHP 創建XML
- xmlwrite 類創建XML
- xmlReader 類解析xml
- JQuery
- JQuery 選擇器
- JQuery 事件
- JQuery 節點之間的操作
- JQuery html屬性設置
- JQuery Class屬性設置
- JQuery CSS樣式設置值
- JQuery 文本內容獲取
- JQuery 動畫特效
- JQuery 數組&對象遍歷
- JQuery 對象擴展方法
- JQuery Ajax操作
- JQuery Pjax
- JQuery Layer前端框架
- JQuery validation 插件
- ThinkPHP5
- 數據庫配置
- 基本操作
- 查詢構造器
- 查詢數據
- 增加數據
- 更新數據
- 刪除數據
- Session
- Cookie
- Linux
- 指令分類
- 文件屬性
- 文件處理命令
- 幫助命令
- 解壓縮命令
- 網絡通信命令
- 系統開關機
- Shell使用技巧
- VIM+vi 指令