2012-03-09 41 views
0

我想建立一個JavaScript和jQuery的腳本,當鼠標懸停在另一個元素上時,有一個元素會發生反應。我已經得到了一些很好的幫助,但我認爲我在這裏搞砸了一些東西。我讓它在一個方向上工作,而不是另一個方向。在它工作的方向上,錨文本內有文本。在不工作的方向上,錨內有一個圖像。這可能是在搞亂我,不確定。我已爲這一切的簡化版本在這裏:http://jsfiddle.net/vZAYY/14/ 這似乎是JavaScript是沒有找到li元素(返回-1)懸停效果與img內部的錨

這是一個奇怪的另一件事是,在全網站(我在本地運行)既不工作,但建立js小提琴我只是直接複製代碼。它位於帶有drupal的站點上,並且腳本從兩個元素上的盤旋返回-1。

有什麼建議嗎?

+0

一個小的更新,使用'nearest()'而不是多次調用parent()。你能減少這個例子嗎?並清楚說明當您懸停鏈接/圖像時會發生什麼? – 2012-03-09 23:46:37

+0

我嘗試使用最接近的(),但無法讓它工作。理想情況下,我試圖發生的事情是,當圖像懸停時,鏈接(文本)會改變顏色,並且圖像變得稍微不透明 - 同樣的事情發生在鏈接(文本)懸停時。如果它使JavaScript更容易,我可以更改類匹配。最難的部分是,如果你說不出來,我對javascript的瞭解不多。任何建議非常感謝。 – jaron 2012-03-09 23:48:57

回答

0

你的代碼有點亂,但如果返回-1它必須是index()函數。不能肯定地說,但你的問題可能是在這裏:

var x = $(this).parent().parent().parent("li").index(); 
$(".mainNavigation ul li:eq(" + x + ")").addClass("active"); 

我不知道parent().parent().parent('li').index()是最好的主意。我的意思是,index()採用您可以指定的上下文。事先緩存選擇器是個好主意。
在第二行而不是:eq我會使用eq()這將更快,更可預測。