5

さまざまな理由により、プロジェクトのこの部分では jQuery を使用できません。SOバニラjsでこれを検出する必要があります。私はこれを試しましたが、うまくいきません:

http://jsfiddle.net/qHfJD/

var myDiv = document.getElementById('foo');

myDiv.onmouseenter = function() { 
    alert('entered');
}

myDiv.onmouseleave = function() { 
    alert('left');
}
4

5 に答える 5

5
myDiv.onmouseover = function(event) {
  if (this != event.currentTarget) { return false; }
  // mouse enter ...
}
myDiv.onmouseout = function(event) {
  if (this != event.currentTarget) { return false; }
  // mouse leave ...
}
于 2016-02-03T07:50:58.780 に答える
3

mouseenterおよびイベントはInternetExplorer独自のmouseleaveものであるため、IEを使用していない場合、それらは機能しません。代わりにmouseoverとを使用してください。mouseout

ちなみに、jQueryは非IEブラウザーでこれらのイベントをシミュレートするため、jQuerymouseenterを介して使用できます。シミュレーションの方法と自分自身のためのヒントについては、この記事mouseleaveを参照してください。mouseentermouseleave

于 2013-03-07T20:01:32.810 に答える
2

mouseentermouseleaveは独自のMSイベントです(実際にはかなりいいです)。myDiv子がない場合、 mouseover/mouseoutを使用してもまったく同じ効果があります。

http://jsfiddle.net/qHfJD/1/

注:この元の質問と回答は非常に古く、IE以外では十分にサポートされていませんでしたmouseentermouseleave最近のすべてのブラウザは、かなり前から要素でこれらのイベントをサポートしてきました。後者は、要素自体に加えてイベントリスナーを使用して要素の子ごとにトリガーされるため、通常はmouseover/よりも優先されます。mouseout

于 2013-03-07T20:00:08.677 に答える
-1

あなたは近くにいます。関数名はonmouseoverとonmouseoutです。

var myDiv = document.getElementById('foo');

myDiv.onmouseover = function() { 
  alert('entered');
}

myDiv.onmouseout = function() { 
  alert('left');
}
于 2013-03-07T20:00:52.403 に答える
-2

試してください:var myDiv = document.getElementById('foo');

myDiv.onmouseover = function() { 
    alert('entered');
}

myDiv.onmouseout = function() { 
    alert('left');
}

onmouseenterとonmouseleaveはIEのみの機能です。

于 2013-03-07T20:01:13.267 に答える