|
左鍵單擊事件
左鍵單擊事件是web開(kāi)發(fā)中最常見(jiàn)的事件。超鏈接識(shí)別點(diǎn)擊事件,然后把你帶到另外一個(gè)URL地址。MooTools能夠識(shí)別其他DOM元素上的點(diǎn)擊事件,在設(shè)計(jì)和功能上給了你極大的靈活性。給一個(gè)元素添加一個(gè)點(diǎn)擊事件的第一步:
參考代碼:
復(fù)制代碼 代碼如下:
// 通過(guò)$('id_name') 取得一個(gè)元素
// 用.addEvent添加事件
// ('click')定義了事件的類(lèi)型
$('id_name').addEvent('click', function(){
// 在這里添加點(diǎn)擊事件發(fā)生時(shí)你要執(zhí)行的任何代碼
alert('this element now recognizes the click event');
});
你也可以把這個(gè)函數(shù)從.addEvent();獨(dú)立出來(lái)來(lái)完成相同的事情:
參考代碼:
復(fù)制代碼 代碼如下:
var clickFunction = function(){
// 在這里添加事件發(fā)生時(shí)你要執(zhí)行的任何代碼
alert('this element now recognizes the click event');
}
window.addEvent('domready', function() {
$('id_name').addEvent('click', clickFunction);
});
參考代碼:
復(fù)制代碼 代碼如下:
<body>
<div id="id_name"> <! -- this element now recognizes the click event -->
</div>
</body>
注意:和超鏈接識(shí)別點(diǎn)擊事件一樣,MooTools的點(diǎn)擊事件實(shí)際上也是識(shí)別“mouse up”,意味著當(dāng)你鼠標(biāo)松開(kāi)是發(fā)生,而不是鼠標(biāo)按下去的時(shí)候發(fā)生。這就給了用戶(hù)一個(gè)機(jī)會(huì)去改變他們的主意――只要在松開(kāi)之前把鼠標(biāo)的指針從點(diǎn)擊的元素上移開(kāi)就可以了。
鼠標(biāo)進(jìn)入和離開(kāi)事件
當(dāng)鼠標(biāo)停留在一個(gè)鏈接元素上時(shí),超級(jí)鏈接還識(shí)別“hover”事件。通過(guò)MooTools,你可以給其他的DOM元素也添加一個(gè)懸停事件。通過(guò)把這個(gè)事件分為鼠標(biāo)進(jìn)入和鼠標(biāo)離開(kāi)事件,你可以更加靈活地根據(jù)用戶(hù)的行為來(lái)操控DOM。
和以前一樣,我們要做的第一件事就是把一個(gè)事件附加到一個(gè)元素:
參考代碼:
復(fù)制代碼 代碼如下:
var mouseEnterFunction = function(){
// 在這里添加事件發(fā)生時(shí)你要執(zhí)行的任何代碼
alert('this element now recognizes the mouse enter event');
}
window.addEvent('domready', function() {
$('id_name').addEvent('mouseenter', mouseEnterFunction);
});
鼠標(biāo)離開(kāi)事件也是同樣的,這個(gè)事件在鼠標(biāo)指針離開(kāi)一個(gè)元素時(shí)發(fā)生。
參考代碼:
復(fù)制代碼 代碼如下:
var mouseLeaveFunction = function(){
// 在這里添加事件發(fā)生時(shí)你要執(zhí)行的任何代碼
alert('this element now recognizes the mouse leave event');
}
window.addEvent('domready', function() {
$('id_name').addEvent('mouseleave', mouseLeaveFunction);
});
刪除一個(gè)事件
總有一些時(shí)候,你一旦不再需要那些事件,于是你需要從一個(gè)元素上刪除一個(gè)事件。刪除一個(gè)事件和添加一個(gè)事件一樣容易,甚至連結(jié)構(gòu)都是類(lèi)似的。
參考代碼:
// 和前一個(gè)示例一樣
// 只不過(guò)把.addEvent換成了.removeEvent
$('id_name').removeEvent('mouseleave', mouseLeaveFunction);
textarea或者input中的按鍵事件
MooTools也可以讓你識(shí)別文本域(textarea)和文本框(input)中的按鍵事件。其語(yǔ)法和我們上面看到的類(lèi)似:
參考代碼:
復(fù)制代碼 代碼如下:
var function = keydownEventFunction () {
alert('This textarea can now recognize keystroke events');
};
window.addEvent('domready', function() {
$('myTextarea').addEvent('keydown', keydownEventFunction);
});
上面的代碼將會(huì)識(shí)別任何按鍵。要針對(duì)一個(gè)特定的按鍵,我們需要添加一個(gè)參數(shù),然后使用一個(gè)if語(yǔ)句:
參考代碼:
復(fù)制代碼 代碼如下:
// 注意函數(shù)括號(hào)中的“event”參數(shù)
var keyStrokeEvent = function(event){
// 下面的代碼是說(shuō):
// 如果按下的鍵為“k”,則做下面的事
if (event.key == "k") {
alert("This tutorial has been brought you by the letter k.")
};
}
window.addEvent('domready', function() {
$('myInput').addEvent('keydown', keyStrokeEvent);
});
如果需要其他的控制,比如“shift”鍵和“control”見(jiàn),語(yǔ)法略有一點(diǎn)不同:
參考代碼:
復(fù)制代碼 代碼如下:
var keyStrokeEvent = function(event){
// 下面代碼是說(shuō):
// 如果按下的鍵是“shift”,則做下面的事
if (event.shift) {
alert("You pressed shift.")
};
}
window.addEvent('domready', function() {
$('myInput').addEvent('keydown', keyStrokeEvent);
});
參考代碼:
復(fù)制代碼 代碼如下:
<div id="body_wrap">
<input id="myInput" type="text" />
</div>
示例
這里是上面我們寫(xiě)過(guò)的一些可以執(zhí)行的代碼:
注意:你可以在單擊示例上面試一下,不過(guò)不是在上面松開(kāi)鼠標(biāo),而是把鼠標(biāo)一直按著從區(qū)塊上離開(kāi),然后再松開(kāi)。注意一下它沒(méi)有觸發(fā)點(diǎn)擊事件。
參考代碼:
復(fù)制代碼 代碼如下:
var keyStrokeEvent = function(event){
// 下面的代碼是說(shuō):
// 如果按下的鍵為“k”,則做下面的事
if (event.key == 'k') {
alert("This Mootorial was brought to you by the letter 'k.'")
};
}
var mouseLeaveFunction = function(){
// 在這里添加事件發(fā)生時(shí)你要執(zhí)行的任何代碼
alert('this element now recognizes the mouse leave event');
}
var mouseEnterFunction = function(){
// 在這里添加事件發(fā)生時(shí)你要執(zhí)行的任何代碼
alert('this element now recognizes the mouse enter event');
}
var clickFunction = function(){
// 在這里添加事件發(fā)生時(shí)你要執(zhí)行的任何代碼
alert('this element now recognizes the click event');
}
window.addEvent('domready', function() {
$('click').addEvent('click', clickFunction);
$('enter').addEvent('mouseenter', mouseEnterFunction);
$('leave').addEvent('mouseleave', mouseLeaveFunction);
$('keyevent').addEvent('keydown', keyStrokeEvent);
});
參考代碼:
復(fù)制代碼 代碼如下:
<div id="click" class="block">左鍵單擊(Click)</div><br />
<div id="enter" class="block">鼠標(biāo)進(jìn)入(Mouse Enter)</div><br />
<div id="leave" class="block">鼠標(biāo)離開(kāi)(Mouse Leave)</div><br />
<input id="keyevent" type="text" value="請(qǐng)輸入字符'k'" />
更多學(xué)習(xí)……
下載一個(gè)包含你開(kāi)始所需要的所用東西的zip包
包含MooTools 1.2核心庫(kù)、一個(gè)外部JavaScript文件、一個(gè)簡(jiǎn)單的html頁(yè)面和一個(gè)css文件。
更多關(guān)于事件的資料
MooTools給了你更多的關(guān)于事件的控制方法,比我們這里講得要多得多。要學(xué)習(xí)更多內(nèi)容,請(qǐng)查看下面幾個(gè)鏈接:
- MooTools文檔中的Events部分
- MooTools文檔中的Element.Events部分
- 還有,閱讀一下w3school網(wǎng)站上關(guān)于JavaScript事件的內(nèi)容
JavaScript技術(shù):Mootools 1.2教程 事件處理,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。