アップデート
コメントで、あなたは言います
私はid他の要素が必要です、その上に今マウスオーバーしています
それは別の質問です。div
そのためには、マウスが離れたことを知ることと、マウスが別の場所に入ったことを知ることの組み合わせが必要になります。私はおそらく次のようにmouseleave
との組み合わせを使用しmouseover
ます:
$("#div_1").mouseleave(function() {
// We're leaving the div, set up to capture mouseover
$("....selector for a container of these elements...").one("mouseover", function(e) {
// Get the ID of the bottommost element
console.log(e.target.id);
// Or alternately, in case it doesn't have one
var elementWithID = $(e.target).closest('[id]');
if (elementWithID[0]) {
console.log(elementWithID[0].id);
}
});
});
しかし、私は、根底にある要件を実現するための別の方法を考え出すために、本当に、本当に一生懸命努力したいと思います。
元の答え:
短いバージョン:
$("#div_1").mouseout(function() {
alert(this.id); // But I'd avoid alert if I were you, perhaps console.log?
});
しかし、読んでください...
長いバージョン:
jQueryを使用してイベントハンドラーを設定する場合、ハンドラーが呼び出されると、this
はイベントをフックしたDOM要素への参照であり、もちろん属性id
の反映プロパティid
です。
mouseout
ただし、バブルを覚えておいてください。そうすればmouseout
、マウスが自分自身(その子孫のいずれか)内にある要素を離れるときはいつでも、それ自体div
を離れていなくても、イベントを受け取ることができます。子孫要素を残さずdiv
に残したい場合は、代わりに使用してください(元々はIEのみですが、jQueryはクロスブラウザーを提供します)。div
mouseleave
これを一般化して、たとえば、クラスを持つすべてのdivにした場合foo
:
$("div.foo").mouseout(function() { // Or, of course, mouseleav
console.log(this.id);
});