1

私はonmouseoverJavascriptで次の機能に取り組んでいます

function fnNavMouseOver(evt) {
    alert(evt.target);
    var eSrc
    evt = (evt) ? evt : (window.event) ? window.event : ""
    eSrc = (evt.target) ? evt.target : evt.srcElement
    alert(eSrc);
}

私は、Firefox ではイベントを関数に渡す必要があるという印象を受けています。ただしevt、ヌルとして入っているようです。これを引き起こしている可能性のあるものはありますか?

編集 :

このメソッドを呼び出すコードは次のように機能します。

ButtonHTML += "<img onmouseover='fnNavMouseOver()' id='" + ButtonId + "Norm' src='" + ImgPath + "_n.jpg' style='border-style:none;z-index=102;position:absolute;left:0px;top:0px'>";

その文字列は、ページの div に追加されます。これは本当に理想的ではないことはわかっていますが、私は古いフレームワークで作業しており、いくつかの新しい機能を押し込もうとしています.

4

2 に答える 2

2

要素の mouseover イベント ハンドラーを HTML 要素の外に設定すると、イベントが関数に渡されると思います。

あなたの使用法では、基本的にこれを行っています:

element.onmouseover = function () { yourfunction() };

これではなく:

element.onmouseover = yourfunction

これはあなたがやりたいことです。引数なしで関数を呼び出しているため、引数を受け取っていないため、Null 値が渡されます。

于 2009-03-23T15:15:00.317 に答える
1

イベントハンドラーの控えめな割り当てに関する回答に同意しますが、その価値があるため、イベントオブジェクトをパラメーターとして渡すことにより、HTML onmouseover 属性を引き続き使用できます...

onmouseover="fnNavMouseOver(event);"
于 2009-03-23T15:59:06.340 に答える