1

私は明らかな間違いを犯しているに違いありませんが、うまくいかないようです。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/hoverIntent.js"></script>

<script type="text/javascript">

$(document).ready(function() {
$('.section').mouseover(function(){
  $('#nav2').fadeOut(0).animate({"height":"30px"}, 250);

         });


$('#section1').hoverIntent(navSelect('.interior','0px'));
$('#section2').hoverIntent(navSelect('.exterior','100px'));
$('#section3').hoverIntent(navSelect('.view','200px'));

function navSelect(section,selectorPosition){
 return function(evt){
  if ( $(section).is(':hidden')){
  $('.subSection').fadeOut(250);
  $(section).delay(250).fadeIn(250);
  $('#selector').animate({"left":selectorPosition},250);
  }}}


         });
</script>

</head>

.hover は問題なく動作しますが、hoverIntent を使用するとまったく何もしません。

4

1 に答える 1

0

hoverIntentメインページから、単一の in/out 関数 overload がありません:

jQuery.hover()handlerInhandlerOutの両方、/または/ handlerInのみを受け取ることができます。私の.hoverIntent()プラグインは、handlerInhandlerOutの両方、/または/ 単一の構成オブジェクトを取ります。のように handlerIn だけを取るようには設計されていません.hover()。次のバージョン (r6) はより柔軟になります。

したがって、必要なものを取得するには、次のように同じメソッドを 2 回渡す必要があります。

$('#section1').hoverIntent(navSelect('.interior','0px'), navSelect('.interior','0px'));

または、少しきれいに、オブジェクトのオーバーロードを使用して一度渡すことができますが、次navSelectのように代わりにそのオブジェクトを返すように変更します。

function navSelect(section,selectorPosition){
  var func = function(evt){
    if ( $(section).is(':hidden')) {
      $('.subSection').fadeOut(250);
      $(section).delay(250).fadeIn(250);
      $('#selector').animate({"left":selectorPosition},250);
    }
  }
  return { over: func, out: func };
}
于 2010-07-31T03:02:27.663 に答える