2010-05-13 27 views
-1

我真的被卡住了。 基本上我对jquery完全陌生,但需要在mousover上添加某种计时器,以便在鼠标移过页面时页面不会混乱。 这里是我的脚本.. 无论如何,我可以很容易地实现它?需要添加悬停意图?

<script> 
jQuery('cc').mouseover(function() { 
$("squareleft3").hide(); 
$("twitter").hide(); 
$("facebook").hide(); 
$("squareright").hide(); 
$("getintouch").hide(); 
$("getintouch2").hide(); 
$("getintouch3").hide(); 
$("vicarimage").hide(); 
$("squaredown2").hide(); 
$("squareleft2").hide(); 
$("one").hide(); 
$("whatis").hide(); 
$("squaredown").hide(); 
$("whoweare").hide(); 
if ($("whoweare:first").is(":hidden")) 
    if ($("squaredown:first").is(":hidden")) 
    if ($("squareleft3:first").is(":hidden")) { 
    if ($("twitter:first").is(":hidden")) 
if ($("squareright:first").is(":hidden")) 
if ($("getintouch:first").is(":hidden")) 
if ($("getintouch2:first").is(":hidden")) 
if ($("getintouch3:first").is(":hidden")) 
if ($("vicarimage:first").is(":hidden")) 
if ($("squaredown2:first").is(":hidden")) 
if ($("squareleft2:first").is(":hidden")) 
if ($("one:first").is(":hidden")) 
if ($("whatis:first").is(":hidden")) 
jQuery('getinvolved').fadeIn(); 
jQuery('squareleft').slideToggleWidth(); 
} else { 
$("squareleft").hide(); 
$("getinvolved").hide(); 
} }); 
</script> 

干杯。

+3

对每一只老鼠都有很大的好处。 – 2010-05-13 01:06:55

+0

你可以帮忙吗?它驱使我疯狂.. 最简单的方法是通过点击而不是鼠标悬停来实现它,以便它可以及时清除任何东西。但我最好宁愿使用鼠标悬停。 – 2010-05-13 01:10:15

+3

你所有的选择器都是错误的。 (除非你有一些奇怪的HTML) – SLaks 2010-05-13 01:10:28

回答

1

获取hoverIntent的副本。

将它链接到您的HEAD地区。

代替mouseOver(),使用hoverIntent()

有各种附加的选项调整定时的阈值(见文档)。

正如其他人指出的那样,您的代码已遍布全球。但hoverIntent确实解决了时间问题。

+0

似乎不工作.. 这显然是一种可以淡化东西的可怕方式,你能否给我一个关于如何做到这一点的快速指针,但是有了悬停意图? – 2010-05-13 01:16:23

+0

HoverIntent只会减少鼠标悬停的灵敏度,因为它需要一定数量的毫秒,而不会在发射前移动。如果您想要了解如何改进代码的一般建议,那就超出了这个问题的范围。但对于初学者来说,您应该专注于更好地了解jQuery选择器如何避免使用多个条件语句。看看toggle()。考虑使用一个类来处理多个元素,这样一个$('。socialbadges')。toggle()就可以代替许多if()s。并研究构建您的HTML以更有效地由jQuery选择器定位。 – 2010-05-13 03:32:50

+0

不知道你的文档是什么样的,但假设一个DIV内有一堆其他标签,所有这些都带有“socialbadges”类,并且随着鼠标进出和隐藏和显示它们的意图,你会想要一些东西沿着这些线:$('div#someContainer')。hoverIntent(function(){$('。socialbadges')。slideToggle()})。如果不知道自己想要达到什么目标,就不能多说。 – 2010-05-13 03:39:27

1

都是$("getintouch2").hide();类别或ID您指的是?是getintouch2上课吗?如果是这样,它需要在它前面有一段时间,或者如果它是一个id,则在它之前有一个散列。像这样:$(".getintouch2").hide();为类,或$("#getintouch2").hide();如果它是一个ID。

我想使用的hover代替mouseover会更你想要什么,然后你的if语句,我认为是有点乱了,如果用多个if的,你需要把& &它们之间将它们连接成一个,我可能是说错了,但我会阅读更多的jquery教程,因为整个事情是有点怪诞的。祝好运,我花了一段时间来学习Jquery,大量的试验和错误,以及大量的Stack Overflow问题。

人们通常会帮助你的代码,如果你使用较小的代码段,特别是如果你有你想在http://www.jsfiddle.com 做一个小例子,它是如此更快,更容易帮助人,当他们使用的jsfiddle。所以我会把你的代码分解成一个小例子,如果你有一个if语句不工作,另一个不会工作,但是你发布了太多代码如果你把它发布到jsfiddle或者你已经把它变得更小了,那么大多数人可能会用绝对正确的代码回答你。因此,一次只能完成一件事,而堆栈溢出是天赐之物,请记住,我在这里学到了很多东西,并且我得到了很多帮助,人们投入了太多时间来帮助别人,这几乎是鼓舞人心的。让我也想帮助别人。

哦,hoverIntent是我经常使用的一个真棒插件,它使得它在人物在屏幕上移动时,也许从屏幕底部到导航,它不会激活所有的鼠标悬停/悬停效果,为了使效果发生,他们必须将鼠标放慢到一定的速度,这是完美的。