ChromeおよびIE9では、onmouseoutイベントに対してevent.toElementプロパティがあります(マウスが現在どの要素を指しているかを判断できます)。
Firefoxで同等のプロパティが見つかりません。
残念ながら、jQueryを使用してこれらのイベントを処理することはできません。ネイティブjsを使用する必要があります。
アドバイスをいただければ幸いです。
これを使用して問題を解決します
event.target
Firefoxではevent.relatedTarget
https://developer.mozilla.org/en/DOM:event.relatedTarget#100398
私は、Firefoxのevent.target
がchromeのevent.toElement
のターゲットの親要素を指しているJayの答えを使用すると問題に遭遇しました。
イベントオブジェクトを調べたところ、event.originalEvent.target
が見つかりました。FirefoxとChromeの両方でうまく機能します。
実際event.currentTarget
はChrome、Firefox、IEで動作するはずです
2014年現在、IE11はtoElement
をサポートしていません。イベントオブジェクトを調べたところ、target
がtoElementと同じデータを持っていることがわかりました。
つまり、このイベントがトリガーされた要素内の子要素をクリックすると、子要素が「ターゲット」になり、この属性に保存されます。
イベントが発生した要素は、currentTarget
属性に格納されます。
これは、11でのみテストしているため、古いバージョンではサポートされていない可能性があることに注意してください。
したがって、Firefoxをサポートするには、ieおよびchrome(および場合によっては、ポリフィルが必要になります。
var target = e.toElement || e.relatedTarget || e.target || function () { throw "Failed to attach an event target!"; }
e
はevent
です
わかりやすいコード..
enter code here
if(typeof evt.toElement !== "undefined")
{
evt.toElement.classList.toggle('done');
}
else if(typeof evt.relatedTarget !== "undefined")
{
if(evt.relatedTarget !== null)
{
evt.relatedTarget.classList.toggle('done');
}
else if(typeof evt.currentTarget !== "undefined")
{
evt.currentTarget.classList.toggle('done');
}
else
{
console.log("s_f_li_clickexception...");
} //endif
} //endif