DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> javascript委托(Delegate)blur和focus用法實例分析
javascript委托(Delegate)blur和focus用法實例分析
編輯:關於JavaScript     

本文實例講述了javascript委托(Delegate)blur和focus用法。分享給大家供大家參考。具體分析如下:

Opera (9.5b) 對於所有的focus和blur事件,不能正確的觸發兩次;
因此,focus和blur事件的處理函數可以被委派到事件的捕獲階段。

例子1(列表類):
復制代碼 代碼如下:<ol id="列表">
  <li><a href="#">列表項1</a>
    <ol>
      <li><a href="#">列表項1.1</a></li>
      <li><a href="#">列表項1.2</a></li>
      <li><a href="#">列表項1.3</a></li>
    </ol>
  </li>
  其他列表項
</ol>

例子2(表單類):
復制代碼 代碼如下:<form id="表單">
  <input type="text" id="文本框" />
  其他表單項
</form>

這裡我們監聽的是最外層的ol區塊,如果我們用blur和focus事件,只是針對的是這整個的ol的,那麼裡面控件的focus和blur事件怎麼處理呢?

處理方式如下:

IE處理:
復制代碼 代碼如下:$('列表').onmouseover = handleMouseOver;
$('列表').onmouseout = handleMouseOut;
$('列表').onfocusin = handleMouseOver;
$('列表').onfocusout = handleMouseOut;

也可以寫成下面的形式:
復制代碼 代碼如下:$('列表').attachEvent('onfocusout',handleMouseOut,true);

如果想要傳遞參數,可以加個中間函數,例如
復制代碼 代碼如下:$('列表').attachEvent('onfocusout',function(event, myparams){handleMouseOut(event, myparams);},true);

FF處理:
復制代碼 代碼如下:$('列表').addEventListener('focus',handleMouseOver,true);
$('列表').addEventListener('blur',handleMouseOut,true);

希望本文所述對大家的javascript程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved