本文實例講述了javascript委託(Delegate)blur和focus用法。分享給大家供大家參考。具體分析如下:
Opera (9.5b) 對於所有的focus和blur事件,不能正確的觸發兩次;
因此,focus和blur事件的處理函數可以被委派到事件的捕獲階段。
範例1(列表類別):
範例2(表單類):
這裡我們監聽的是最外層的ol區塊,如果我們用blur和focus事件,只是針對的是這整個的ol的,那麼裡面控件的focus和blur事件怎麼處理呢?
處理方式如下:
IE處理:
$('列表').onmouseover = handleMouseOverver>;
$('列表').onmouseover = handleMouseOver.
$('列表').onmouseout = handleMouseOut;
$('列表').onfocusin = handleMouseOver;
$('列表').onfocusout = handleMouseOut;
也可以寫成下面的形式:
$('列表').attachEvent('onfocusout',handleMouseOut,true);
如果想要傳遞參數,可以加個中間函數,例如
$('列表').attachEvent('onfocusout',function(event, myparams(event, myparams ){handleMouseOut(event, myparams);},true);
FF處理:
$('列表').addEventListener('focus',handleMouseOver,true);
$('列表').addEventListener('blur',handleMouseOut,true);
希望本文所述對大家的javascript程式設計有所幫助。