DOMイベントキャプチャとバブルカスタムイベント


DOMイベント小計
  • 基本概念:DOMイベントのレベル
  • DOM0: element.onclick = function(){} DOM2: element.addEventListener('click',function(){},false) DOM3: element.addEventListener('keyup',function(){},false)
  • DOMイベントモデル
  • キャプチャ
  • 発泡
  • DOMイベントフロー
  • キャプチャ==>ターゲットフェーズ==>バブル
  • は、DOMイベントキャプチャの具体的な流れ
  • を記述する.
    特定のフローのキャプチャ(バブルの逆)
  • window ===> document ===> html ===> body ===> ...ターゲット要素
  • 取得プロセスのデモ:
    
    //body     id ev div,         
    
    var ev = document.getElementById('ev')
    
    window.addEventListener('click',function(){
    
    console.log('window captrue');
    
    },true)//true       ,false       
    
    document.addEventListener('click',function(){
    
    console.log('document captrue');
    
    },true)
    
    document.documentElement.addEventListener('click',function(){
    
    console.log('html captrue');
    
    },true)
    
    document.body.addEventListener('click',function(){
    
    console.log('body captrue');
    
    },true)
    
    ev.addEventListener('click',function(){
    
    console.log('ev captrue');
    
    },true)
    
    //   id ev div,         
    
    window captrue
    
    document captrue
    
    html captrue
    
    body captrue
    
    ev captrue
    
    //            
    
  • Eventオブジェクトの一般的なアプリケーション
  • event.preventDefault()デフォルトイベント
  • をブロック
  • event.stopPropagation()発泡防止
  • event.stopImmediatePropagation()イベント応答優先度
  • event.CurrentTargetは、トリガイベントを引き起こす要素
  • を指す.
  • event.targetイベントバインド要素
  • カスタムイベント(シミュレーションイベント)
  • 
    var eve = new Event('custome');
    
    element.addEventListener('custome',function(){
    
    console.log('custome');
    
    });
    
    element.dispatchEvent(eve);
    
    //        eve      custome