2010-07-31 100 views
1

我必須犯一些明顯的錯誤,但它似乎並沒有工作。不能讓hoverIntent jQuery插件工作

<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時,它什麼也沒有。

回答

0

hoverIntent doesn't have a single in/out function overload,從主頁:

的jQuery .hover()可以採取既handlerInhandlerOut,/或/只是一個handlerIn。我的.hoverIntent()插件需要handlerInhandlerOut,/或/單個配置對象。它的設計目的不在於像.hover()這樣的處理程序。下一個版本(r6)將更加靈活。

因此,要得到你想要的,你要麼必須通過同樣的方法兩次,這樣的:

$('#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 }; 
} 
+0

感謝,在使用JavaScript和這整個返回對象的東西真的基本水平仍然偉大工程,IM是讓人有些困惑對我來說 – 2010-07-31 04:48:38