javascript事件の泡だらけの補充

2253 ワード

scrollはIE 8-9では捕獲できず、泡ができないため、イベントエージェントを使用できません.FFでは捕獲によって処理できます.
focusとblurイベントはIEの下でfocusinとfocusoutイベントによってシミュレーションできますが、フォーム要素やリンクや写真などの一般的な要素ではなく、tabIndexを設定する必要があります.焦点をキャプチャしたり、焦点を失う能力があります.しかし、このようなOnXXX呼び出しができないイベントはいつでも廃棄されますので、私もそれらを使ってシミュレーションしません.focus、blurのイベントエージェントです.
>
<>>

<title>イベントシステムのメモ司徒正美(/title)
<スタイル>
div.test{
width:400 px;
height:320 px
magin:0 15 px;
background-カラー:33751;D 6 EDFC;
overflow:atot;
float:left;
)
ディv.test 1{
height:200 px
background:red
)

<スクリプト>
window.onload=function(){
var el=document.getElemenntById(「test」);
el.addEvent Listener(「DOMFocusIn」、function(e){
consolone.log(e.type)
},false)
el.addEvent Listener(「DOMFocusOut」、function(e){
consolone.log(e.type)
}false
el.addEvent Listener(「focus」、function(e){
consolone.log(e.type)
},false)
el.addEvent Listener(「blur」、function(e){
consolone.log(e.type)
}false
)


<body>
<h 1>mouseenterとmouseleave(/h 1)
<div class=「test」id=「test」tabIndex=「-1」
<div class=「test 1」tabIndex=「-1」



実行コード
scrollは二つのDIVの間かwindowの中にしか使えません.この時はスクロールバーが存在することが要求されます.IEの中で泡ができなくても捕獲できません.標準ブラウザの中で泡が発生する状況も非常に混乱しています.スクロールバーがあるかどうかを判定するだけで、そのイベントの代理をサポートするつもりもありません.

        // IE w3c  focus blur select   
        "focus_focusin,blur_focusout,select_selectstart".replace(/\w+/g,function(types){
            types = types.split("_");
            events.special[  types[0] ]  = {
                liveType: DOC.dispatchEvent ? types[0] : types[1],
                livePhase:!!DOC.dispatchEvent,
                liveSetup: function(node, type, _, phase){
                    enableFocusin(node);
                    dom.bind(node,type,function(e){
                        e = events.fix(e);
                        dom.log(" IE w3c  focus blur select   ")
                        e.type = types[0];
                        events.handle.call(this,e);
                    },phase);
                }
            }
        });