2010-05-13 80 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是我經常使用的一個真棒插件,它使得它在人物在屏幕上移動時,也許從屏幕底部到導航,它不會激活所有的鼠標懸停/懸停效果,爲了使效果發生,他們必須將鼠標放慢到一定的速度,這是完美的。