?? element.event.md.svn-base
字號(hào):
Native: Element {#Element}
==========================
對(duì)Element的進(jìn)行事件處理的方法
以下提供的方法對(duì)window和document同樣有效
### 備注:
- 在Internet Explorer下, 如果不是使用[Element:fireEvent](#Element:fireEvent)方法觸發(fā)元素的事件的話, 則事件監(jiān)聽器的執(zhí)行順序是隨機(jī)的
Element 方法: addEvent {#Element:addEvent}
--------------------------------------------
向DOM元素添加一個(gè)事件監(jiān)聽器
### 語法:
myElement.addEvent(type, fn);
### 參數(shù):
1. type - (*string*) 監(jiān)聽的事件類型 ('click', 'load', 等等), 注意沒有前綴'on'
2. fn - (*funtion*) 監(jiān)聽函數(shù)
### 返回值:
* (*element*) 主調(diào)元素
### 示例:
##### HTML:
<div id="myElement">Click me.</div>
##### JavaScript
$('myElement').addEvent('click', function(){
alert('clicked!');
});
### 備注:
- 可以在監(jiān)聽函數(shù)中使用返回false的手段或者調(diào)用[Event:stop](#Event:stop)來停止事件
- 在Document和Window上也具有本方法
### 另參考:
- [w3schools Event Attributes](http://www.w3schools.com/html/html_eventattributes.asp)
Element 方法: removeEvent {#Element:removeEvent}
--------------------------------------------------
刪除指定的事件監(jiān)聽函數(shù)
### 語法:
myElement.removeEvent(type, fn);
### 參數(shù):
1. type - (*string*) 事件名
2. fn - (*funtion*) 要?jiǎng)h除的函數(shù)
### 返回值:
* (*element*) 主調(diào)元素
### 示例:
#### 獨(dú)立使用:
//先添加一個(gè)監(jiān)聽器
var destroy = function(){
alert('Boom: ' + this.id);
};
$('myElement').addEvent('click', destroy);
//之后,刪除它
$('myElement').removeEvent('click', destroy);
#### 和bind配合使用:
var destroy = function(){
alert('Boom: ' + this.id);
}
var boundDestroy = destroy.bind($('anotherElement'));
$('myElement').addEvent('click', boundDestroy);
//之后,刪除它
//1.這里將不會(huì)刪除任何監(jiān)聽器(因?yàn)樵厣喜⒉淮嬖谶@個(gè)監(jiān)聽器)
$('myElement').removeEvent('click', destroy);
//2.這里也不會(huì)刪除任何監(jiān)聽器(因?yàn)檫@里其實(shí)創(chuàng)建了一個(gè)新的函數(shù),和元素上的監(jiān)聽器不是相同的引用)
$('myElement').removeEvent('click', destroy.bind($('anotherElement'));
//3.可以正確刪除監(jiān)聽器
$('myElement').removeEvent('click', boundDestroy);
### 備注:
- 當(dāng)使用[Function:bind][] 或 [Function:pass][] 等創(chuàng)建函數(shù)時(shí), 將創(chuàng)建一個(gè)新的引用. 如果要正確使用removeEvent來刪除監(jiān)聽器, 你必須傳入原先監(jiān)聽器的引用
- 在Document和Window上也具有本方法
Element 方法: addEvents {#Element:addEvents}
----------------------------------------------
向DOM元素一次添加多個(gè)事件監(jiān)聽器
### 語法:
myElement.addEvents(events);
### 參數(shù):
1. events - (*object*) 鍵值對(duì)對(duì)象: 鍵為事件名, 值為監(jiān)聽函數(shù)
### 返回值:
* (*element*) 主調(diào)元素
### 示例:
$('myElement').addEvents({
'mouseover': function(){
alert('mouseover');
},
'click': function(){
alert('click');
}
});
### 備注:
- 在Document和Window上也具有本方法
### 另參考:
- [Element:addEvent](#Element:addEvent)
Element 方法: removeEvents {#Element:removeEvents}
----------------------------------------------------
刪除指定事件類型上的所有監(jiān)聽函數(shù).
如果未傳入任何參數(shù),則刪除所有類型上的所有監(jiān)聽函數(shù).
### 語法:
myElements.removeEvents([type]);
### 參數(shù):
1. type - (*string*, 可選) 事件名(如: 'click'). 如果未指定, 則刪除所有事件
### 返回值:
* (*element*) 主調(diào)元素
### 示例:
var myElement = $('myElement');
myElement.addEvents({
'mouseover': function(){
alert('mouseover');
},
'click': function(){
alert('click');
}
});
myElement.addEvent('click': function(){ alert('clicked again'); });
myElement.addEvent('click': function(){ alert('clicked and again :('); });
myElement.removeEvents('click');
### 備注:
- 在Document和Window上也具有本方法
### 另參考:
- [Element:removeEvent](#Element:removeEvent)
Element 方法: fireEvent {#Element:fireEvent}
----------------------------------------------
觸發(fā)元素上指定的事件類型
### 語法:
myElement.fireEvent(type[, args[, delay]]);
### 參數(shù):
1. type - (*string*) 事件名(如: 'click')
2. args - (*mixed*, 可選) 傳遞給監(jiān)聽函數(shù)的參數(shù). 如果參數(shù)個(gè)數(shù)大于一,則必須使用數(shù)組
3. delay - (*number*, 可選) 延遲執(zhí)行監(jiān)聽函數(shù)的毫秒數(shù)
### 返回值:
* (*element*) 主調(diào)元素
### 示例:
//觸發(fā)myElement的click事件,并在一秒鐘后執(zhí)行事件的監(jiān)聽函數(shù)(向每個(gè)函數(shù)傳入anElement元素作為參數(shù))
$('myElement').fireEvent('click', $('anElement'), 1000);
### 備注:
- 本方法不會(huì)觸發(fā)DOM級(jí)別的事件(如元素標(biāo)簽上內(nèi)聯(lián)方式的事件聲明: onmousedown="...")
- 在Document和Window上也具有本方法
Element 方法: cloneEvents {#Element:cloneEvents}
--------------------------------------------------
復(fù)制目標(biāo)元素上的所有事件到本元素
### 語法:
myElement.cloneEvents(from[, type]);
### 參數(shù):
1. from - (*element*) 目標(biāo)元素
2. type - (*string*, 可選) 復(fù)制的事件類型. 如果為null或未指定,則復(fù)制所有的事件
### 返回值:
* (*element*) 主調(diào)元素
### 示例:
var myElement = $('myElement');
var myClone = myElement.clone().cloneEvents(myElement); //復(fù)制元素并復(fù)制下所有的事件
### 備注:
- 在Document和Window上也具有本方法
Hash: Element.Events{#Element-Events}
==============================================
用于創(chuàng)建自定義的事件類型
### 參數(shù):
自定義一個(gè)事件時(shí), Element.Events.yourproperty中可包含如下內(nèi)容:
1. base - (*string*, 可選) 自定義事件所監(jiān)聽的基類事件. 如果指定了下面condition參數(shù),則本參數(shù)必須填寫
2. condition - (*function*, 可選) 自定義事件觸發(fā)的條件函數(shù) (函數(shù)的參數(shù)為一個(gè)Event實(shí)例)
3. onAdd - (*function*, 可選) 當(dāng)元素添加自定義事件時(shí)觸發(fā)的函數(shù) (函數(shù)的參數(shù)為一個(gè)Event實(shí)例)
4. onRemove - (*function*, 可選) 當(dāng)元素刪除自定義事件時(shí)觸發(fā)的函數(shù) (函數(shù)的參數(shù)為一個(gè)Event實(shí)例)
### 示例:
//自定義事件shiftclick: 按住shift后鼠標(biāo)進(jìn)行點(diǎn)擊
Element.Events.shiftclick = {
base: 'click', //設(shè)置基類事件為click
condition: function(event){ //用來檢測(cè)其他事件觸發(fā)條件
return (event.shift == true); //檢查是否按了shift鍵
}
};
$('myInput').addEvent('shiftclick', function(event){
log('the user clicked the left mouse button while holding the shift key');
});
### 備注:
- 有以下幾種不同類型的自定義事件組合:
1. 只定義了base: 僅僅是重定向到基類事件上去
2. 定義了base和condition: 重定向到基類事件上去,但由condition來決定是否觸發(fā)
3. 定義了onAdd和/或onRemove,并且定義了base和condition: 事件添加/刪除時(shí)會(huì)觸發(fā)關(guān)聯(lián)的函數(shù)
### 警告:
請(qǐng)慎用自定義事件和原生事件同名,并使用condition選項(xiàng)(除非你打算覆蓋原生事件).
(嚴(yán)重不推薦: 只有當(dāng)你確切的明白你在做的事情時(shí)使用)
事件: mouseenter {#Element-Events:mouseenter}
-------------------------------------------------
(框架提供的自定義事件)
本事件在鼠標(biāo)進(jìn)入指定元素區(qū)域時(shí)觸發(fā),并且不會(huì)在鼠標(biāo)穿越子元素的時(shí)候再次觸發(fā)(區(qū)別于mouseover)
#### 示例:
$('myElement').addEvent('mouseenter', myFunction);
#### 另參考:
- [Element:addEvent](#Element:addEvent)
事件: mouseleave {#Element-Events:mouseleave}
-------------------------------------------------
(框架提供的自定義事件)
本事件在鼠標(biāo)離開指定元素區(qū)域時(shí)觸發(fā),并且不會(huì)再離開本元素的子元素的時(shí)候觸發(fā)(區(qū)別于mouseout)
#### 示例:
$('myElement').addEvent('mouseleave', myFunction);
#### 另參考:
- [Element:addEvent](#Element:addEvent)
事件: mousewheel {#Element-Events:mousewheel}
-------------------------------------------------
(框架提供的自定義事件)
本事件在鼠標(biāo)滾輪滾動(dòng)時(shí)觸發(fā)
#### 示例:
$('myElement').addEvent('mousewheel', myFunction);
#### 另參考:
- [Element:addEvent](#Element:addEvent)
[$]: /Element/#dollar
[Function]: /Native/Function
[Function:bind]: /Native/Function/#Function:bind
[Function:pass]: /Native/Function/#Function:pass
[Function:delay]: /Native/Function/#Function:delay
[Element.Events]: #Element-Events
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -