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

首頁 > 開發 > 綜合 > 正文

MooTools教程(5):事件處理

2024-07-21 02:04:22
字體:
來源:轉載
供稿:網友

今天我們開始第五講,在上一講(《mootools 1.2教程(4)——函數》)中,我們學習了在mootools 1.2中建立和使用函數的幾種不同方式。下一步就是理解事件了。和選擇器類似,事件也是建立互動界面的一個重要部分。一旦你掌握了一個元素,你需要去決定什么行為來觸發什么效果。先把效果留著以后在講,我們首先看一看中間步驟和一些常見的事件。

左鍵單擊事件

左鍵單擊事件是web開發中最常見的事件。超鏈接識別點擊事件,然后把你帶到另外一個url地址。mootools能夠識別其他dom元素上的點擊事件,在設計和功能上給了你極大的靈活性。給一個元素添加一個點擊事件的第一步:

參考代碼:
  1. // 通過$('id_name') 取得一個元素
  2. // 用.addevent添加事件
  3. // ('click')定義了事件的類型
  4. $('id_name').addevent('click'function(){
  5.     // 在這里添加點擊事件發生時你要執行的任何代碼
  6.     alert('this element now recognizes the click event');
  7. });

你也可以把這個函數從.addevent();獨立出來來完成相同的事情:

參考代碼: [復制代碼] [保存代碼]
  1. var clickfunction = function(){
  2.     // 在這里添加事件發生時你要執行的任何代碼
  3.     alert('this element now recognizes the click event');
  4. }
  5.  
  6. window.addevent('domready'function() {
  7.     $('id_name').addevent('click', clickfunction);
  8. });
參考代碼: [復制代碼] [保存代碼]
  1. <body>
  2.     <div id="id_name"> <! -- this element now recognizes the click event -->
  3.     </div>
  4. </body>

注意:和超鏈接識別點擊事件一樣,mootools的點擊事件實際上也是識別“mouse up”,意味著當你鼠標松開是發生,而不是鼠標按下去的時候發生。這就給了用戶一個機會去改變他們的主意——只要在松開之前把鼠標的指針從點擊的元素上移開就可以了。

鼠標進入和離開事件

當鼠標停留在一個鏈接元素上時,超級鏈接還識別“hover”事件。通過mootools,你可以給其他的dom元素也添加一個懸停事件。通過把這個事件分為鼠標進入和鼠標離開事件,你可以更加靈活地根據用戶的行為來操控dom。

和以前一樣,我們要做的第一件事就是把一個事件附加到一個元素:

參考代碼: [復制代碼] [保存代碼]
  1. var mouseenterfunction = function(){
  2.     // 在這里添加事件發生時你要執行的任何代碼
  3.     alert('this element now recognizes the mouse enter event');
  4. }
  5.  
  6. window.addevent('domready'function() {
  7.     $('id_name').addevent('mouseenter', mouseenterfunction);
  8. });

鼠標離開事件也是同樣的,這個事件在鼠標指針離開一個元素時發生。

參考代碼: [復制代碼] [保存代碼]
  1. var mouseleavefunction = function(){
  2.     // 在這里添加事件發生時你要執行的任何代碼
  3.     alert('this element now recognizes the mouse leave event');
  4. }
  5.  
  6. window.addevent('domready'function() {
  7.    $('id_name').addevent('mouseleave', mouseleavefunction);
  8. });

刪除一個事件

總有一些時候,你一旦不再需要那些事件,于是你需要從一個元素上刪除一個事件。刪除一個事件和添加一個事件一樣容易,甚至連結構都是類似的。

參考代碼: [復制代碼] [保存代碼]
  1. // 和前一個示例一樣
  2. // 只不過把.addevent換成了.removeevent
  3. $('id_name').removeevent('mouseleave', mouseleavefunction);

textarea或者input中的按鍵事件

mootools也可以讓你識別文本域(textarea)和文本框(input)中的按鍵事件。其語法和我們上面看到的類似:

參考代碼: [復制代碼] [保存代碼]
  1. var function = keydowneventfunction () {
  2.     alert('this textarea can now recognize keystroke events');
  3. };
  4.  
  5. window.addevent('domready'function() {
  6.     $('mytextarea').addevent('keydown', keydowneventfunction);
  7. });

上面的代碼將會識別任何按鍵。要針對一個特定的按鍵,我們需要添加一個參數,然后使用一個if語句:

參考代碼: [復制代碼] [保存代碼]
  1. // 注意函數括號中的“event”參數
  2. var keystrokeevent = function(event){
  3.     // 下面的代碼是說:
  4.     // 如果按下的鍵為“k”,則做下面的事
  5.     if (event.key == "k") {  
  6.     alert("this tutorial has been brought you by the letter k."
  7.     };
  8. }
  9.  
  10. window.addevent('domready'function() {
  11.     $('myinput').addevent('keydown', keystrokeevent);
  12. });

如果需要其他的控制,比如“shift”鍵和“control”見,語法略有一點不同:

參考代碼: [復制代碼] [保存代碼]
  1. var keystrokeevent = function(event){
  2.     // 下面代碼是說:
  3.     // 如果按下的鍵是“shift”,則做下面的事
  4.     if (event.shift) { 
  5.     alert("you pressed shift."
  6.     };
  7. }
  8.  
  9. window.addevent('domready'function() {
  10.     $('myinput').addevent('keydown', keystrokeevent);
  11. });
參考代碼: [復制代碼] [保存代碼]
  1. <div id="body_wrap">
  2.     <input id="myinput" type="text" />
  3. </div>

示例

這里是上面我們寫過的一些可以執行的代碼:

注意:你可以在單擊示例上面試一下,不過不是在上面松開鼠標,而是把鼠標一直按著從區塊上離開,然后再松開。注意一下它沒有觸發點擊事件。

參考代碼: [復制代碼] [保存代碼]
  1. var keystrokeevent = function(event){
  2.     // 下面的代碼是說:
  3.     // 如果按下的鍵為“k”,則做下面的事
  4.     if (event.key == 'k') { 
  5.         alert("this mootorial was brought to you by the letter 'k.'")  
  6.     };
  7. }
  8.  
  9. var mouseleavefunction = function(){
  10.     // 在這里添加事件發生時你要執行的任何代碼
  11.     alert('this element now recognizes the mouse leave event');
  12. }
  13.  
  14. var mouseenterfunction = function(){
  15.     // 在這里添加事件發生時你要執行的任何代碼
  16.     alert('this element now recognizes the mouse enter event');
  17. }
  18.  
  19. var clickfunction = function(){
  20.     // 在這里添加事件發生時你要執行的任何代碼
  21.     alert('this element now recognizes the click event');
  22. }
  23.  
  24. window.addevent('domready'function() {
  25.     $('click').addevent('click', clickfunction);
  26.     $('enter').addevent('mouseenter', mouseenterfunction);
  27.     $('leave').addevent('mouseleave', mouseleavefunction);
  28.     $('keyevent').addevent('keydown', keystrokeevent);
  29. });
參考代碼: [復制代碼] [保存代碼]
  1. <div id="click" class="block">左鍵單擊(click)</div><br />
  2. <div id="enter" class="block">鼠標進入(mouse enter)</div><br />
  3. <div id="leave" class="block">鼠標離開(mouse leave)</div><br />
  4. <input id="keyevent" type="text" value="請輸入字符'k'" />

左鍵單擊(click)

鼠標進入(mouse enter)

鼠標離開(mouse leave)

 

更多學習……

下載一個包含你開始所需要的所用東西的zip包

包含mootools 1.2核心庫、一個外部javascript文件、一個簡單的html頁面和一個css文件。

更多關于事件的資料

mootools給了你更多的關于事件的控制方法,比我們這里講得要多得多。要學習更多內容,請查看下面幾個鏈接:

  • mootools文檔中的events部分
  • mootools文檔中的element.events部分
  • 還有,閱讀一下w3school網站上關于javascript事件的內容
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 民勤县| 铜梁县| 丰县| 南靖县| 康定县| 兴宁市| 永城市| 阿拉善右旗| 盖州市| 高安市| 正宁县| 奎屯市| 辽中县| 江西省| 诸城市| 岱山县| 二手房| 彭州市| 滦平县| 定安县| 乐业县| 宝山区| 塔城市| 松原市| 防城港市| 芜湖市| 阳山县| 和顺县| 宜兰市| 新余市| 杭锦后旗| 太康县| 闽清县| 浦东新区| 朝阳区| 柞水县| 洞头县| 郸城县| 五莲县| 纳雍县| 玉树县|