4

Firefox では、onclick イベント ハンドラーをメソッドに追加すると、イベント オブジェクトが自動的にそのメソッドに渡されます。これにより、特に、どの特定の要素がクリックされたかを検出する機能が可能になります。例えば

document.body.onclick = handleClick;

function handleClick(e)
{
    // this works if FireFox
    alert(e.target.className);
}

IEでこれを近似する方法はありますか? body 要素のイベント ハンドラーから、どの要素がクリックされたかを検出できる必要があります。

4

4 に答える 4

7

jQueryを使用できない場合の方法は次のとおりです

document.body.onclick = handleClick;

function handleClick(e)
{
    //If "e" is undefined use the global "event" variable
    e = e || event;

    var target = e.srcElement || e.target;
    alert(target.className);
}

そして、ここにjQueryソリューションがあります

$(document.body).click(function(e) {
  alert($(this).attr("class"));
});
于 2008-11-21T11:48:34.947 に答える
3

これは、DOM ノードにイベントを追加するための承認された表記法ではありません。

if (el.addEventListener){
  el.addEventListener('click', modifyText, false); 
} else if (el.attachEvent){
  el.attachEvent('onclick', modifyText);
}

クリック イベントをバインドするための推奨される記法は、クロス ブラウザー フレンドリです。

見る:

また、イベントがクリックされると、実行されるコールバック関数には、クリックされたエンティティであるオブジェクト「this」が含まれます。

function foo() { 
   window.open(this.src, '_blank'); 
}
于 2008-11-21T11:44:01.820 に答える
2

IEでは

e.srcElement
于 2008-11-21T11:43:26.080 に答える
0

IE は という変数を使用していると思いますevent。それが機能するかどうかを確認しますか?

于 2008-11-21T11:42:05.520 に答える