6

私が達成したいのは、マウスがmenu3にホバーされていない場合、システムはaboutMenuがホバーされているかどうかをチェックし続け、そうであればアラート「h」、それ以外の場合はアラート「nh」です。問題は、マウスがmenu3を離れるときに一度だけチェックすることです。この問題を修正するにはどうすればよいですか?ありがとう。

$('#menu3').live('mouseout',function() {

$("#aboutMenu").hover(function() {
    $(this).data("hovered", true);
}, function() {
    $(this).data("hovered", false);
}); 

if ( $("#aboutMenu").data("hovered") ) {
    alert ('h');
} else {
    alert ('nh');
}
});

更新しました:

または、これを行うもう1つの方法は、menu3またはaboutMenuがホバーされているかどうかをシステムがチェックし続けることです。ホバーされていない場合は、ホバーされたメッセージがポップアップ表示されます。ただし、これはページが初期化されたときに1回だけ実行されます。チェックを続けるにはどうすればよいですか?ありがとう

$(document).ready(function() {
$("#aboutMenu,#menu3").hover(function() {
$(this).data("hovered", true);
}, function() {
    $(this).data("hovered", false);
}); 

if ( $("#aboutMenu,#menu3").data("hovered") ) 
alert ('hovered');
}); 
4

2 に答える 2

4
function checkHover() {
  if ($("#aboutMenu,#menu3").hasClass("hovered")) {
    alert ('hovered');
    //other stuff if hovered
  }
  else {
    //other stuff if not hovered
  }
}

$(document).ready(function() {
  $("#aboutMenu,#menu3").hover(function() {
    $(this).addClass("hovered");
  }, function() {
    $(this).removeClass("hovered");
  }); 

  setInterval(checkHover, 1000);
}); 
于 2012-12-22T11:01:06.370 に答える
1

ホバーステートを定期的にチェックするのはアイデアでしょうか?

function chkhover(){
    if ($('#aboutMenu').is(':hover')){
        alert('#aboutMenu hoverstate is: hovered');
    }
    setTimeout(chkhover, 500);
}

$(document).ready(chkhover);

このjsfiddleを参照してください。ちなみに、これはcssのみのソリューションも示しています。

于 2012-12-22T11:00:08.417 に答える