4

簡単な質問です。Jquery でこの機能を実現するにはどうすればよいですか: マウスがホバーしているかどうかをテストする.myBox

    if ($(".myBox").mouseleave = true) {
        DO SOMETHING
    } else {something else}

また

    if ($(".myBox").mouseover = false) {
        DO SOMETHING
    } else {Something else}

注:IFステートメントを探しています

4

8 に答える 8

10

jQuery は、isjQuery オブジェクトに関する条件をチェックするためのメソッドを提供します。あなたの場合、:hoverCSS 疑似クラスを確認できます。

$('.myBox').is(':hover') === true

このデモを見て、ボタンをクリックして (アラートが表示されますtrue)、タブでボタンを押して Enter キーを押してみてください (マウスを使用しないと、 が返されますfalse)。

デモ: http://jsfiddle.net/marcuswhybrow/LL5JD/

于 2011-01-28T16:55:20.233 に答える
4

jQueryマウスオーバーを見てください

$(".my_box").mouseover(function(){
    // Mouse over...
});

$(".my_box").mouseout(function(){
    // Mouse left...
});

これは、画像にカーソルを合わせたときに境界線を追加し、再度カーソルを合わせていない場合はx時間後に画像を削除する例です。ここで機能することを確認してください

var hover_off = false;
var hover_count = 1000;

$(".my_box").mouseover(function() {
    hover_off = false;
    $(this).addClass('hovering');
});

$(".my_box").mouseout(function() {
    hover_off = true;
    setTimeout(myMouseOut, hover_count);
});

function myMouseOut() {
    if (hover_off) {
        $(".my_box").removeClass('hovering');
    }
}
于 2011-01-28T16:57:29.527 に答える
2

そうです、 $('.myBox').is(':hover') を jQuery 1.5.1 で使用するとエラーがスローされますが、私のテストでは Opera Browser (11.01) でのみ: Uncaught exception: Syntax error, unrecognized expression: hover

$('.myBox').is('not(:hover)') これは、Opera 11、FF4、IE7、Chrome 5 でのテストでは問題なく機能しました

于 2011-04-15T05:48:21.333 に答える
1

.hover() http://api.jquery.com/hover/を使用

于 2011-01-28T16:51:19.443 に答える
1
$(".myBox").hover(
           function(){
               //DO SOMETHING ON MOUSE ENTER
           },
           function(){
               //DO SOMETHING ON MOUSE LEAVE
           }
 });
于 2011-01-28T16:56:26.990 に答える
1

これは私にとってはうまくいきました:

var hover = false;
$('.someClass').each(function(i,e){
    hover = !hover ? $(e).is(':hover') : true;
});

if (hover)
    // do something
else
    // do something else
于 2012-08-07T14:30:54.960 に答える
0

これを使用してください:http://plugins.jquery.com/project/enterleave-events

$('.myBox').bind('enter leave',function() {
  // do something, use $(this) to get the object
});
于 2011-01-28T16:53:00.627 に答える
0

mouseenterおよびmouseleaveイベントに作用します。

または、hover両方を処理できる を使用します。

$('.myBox').hover(
   function(e){
     //do the mouseenter things here...
   },
   function(e){
     //do the mouseleave things here...
   }
);

http://www.jsfiddle.net/gaby/ECYD4/の例

于 2011-01-28T16:53:53.577 に答える