javascript委託(Delegate)blur和focus用法執行個體分析,delegateblur

來源:互聯網
上載者:User

javascript委託(Delegate)blur和focus用法執行個體分析,delegateblur

本文執行個體講述了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程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.