2012-01-22 45 views
1

我一直在使用jQuery懸停功能有些困難。由於盯着相同的代碼太久,可能會有人可以幫助。jQuery懸停功能IE錯誤

我有以下功能:

$("#div1").mouseover(function() { 
     $("#div2:hidden").show(); 
    }); 
    $("#div1").mouseout(function() { 
     $("#div2:visible").hide(); 
    }); 

這也是我曾嘗試爲:

$("#div1").hover(function() { 
     $("#div2:hidden").show(); 
    }, function() { 
     $("#div2:visible").hide(); 
    }); 

無論是工作在IE瀏覽器在所有。我使用任何鼠標懸停,懸停,鼠標或任何其他「鼠標」功能編寫的所有內容都會在IE中導致錯誤。與其他瀏覽器一樣,它是完美的,更偶然的是它偶爾會在IE中工作,例如有時第一次和第二次都可以工作 - 那麼它會出錯。

任何幫助將是太棒了!

+0

你能提供的標記,我希望你沒有使用相同的'id's(只是一種預感) – Rafay

+1

一事達成協議使用相同的「id」值的可能性。另外,你不需要':hidden'和':visible'。 div是否隱藏,'。show()'會做同樣的事情。對於'.hide()'也是如此。 –

+0

遺憾的是,身份證都是非常具體的名字(全部W3有效)。我在Visual Studio中運行了搜索,沒有多個ID使用情況。我已經刪除了「:hidden /:visible」選擇器,沒有改變。但謝謝你看看! – Dan

回答

0

它工作得很好,在這裏:http://jsfiddle.net/U89de/1/

你的第一個代碼是錯誤的。更好的使用:

$('#div1').mouseover(function() { 
    // mouseover event 
}).mouseout(function() { 
    // mouseout event 
}); 

如果您使用jQuery 1.7或更高版本,最好使用.on()

$('#div1').on({ 
    mouseover : function() { 
    // mouseover event 
    }, 
    mouseout : function() { 
    // mouseout event 
    } 
}); 
+0

我將它更新爲.on()函數 - 同樣的錯誤。在其他所有瀏覽器中都能正常工作 – Dan

+0

「不工作」是什麼意思?你是否在代碼中放置了一個$(document).ready事件?你是否在之前添加了JS代碼? –

+0

對兩者都是。它只是在IE中觸發並反對預期的錯誤,我試過6/7/8/9,甚至在剝離時也沒有改變,所以頁面上沒有其他東西。我在想我的IE可能有問題。 – Dan

0

somethig別人都是錯的在這裏工作

http://jsfiddle.net/TnPRA/4/

編輯

一件事包裹準備處理程序中的代碼

$(document).ready(function(){ 

//your code here 
}); 

,因爲這在這裏不起作用即它沒有包裹在準備好處理程序中通知no wrap(head)選項在第二個小提琴

作爲概念論證遵循鏈接http://jsfiddle.net/TnPRA/10/

+0

它有document.ready函數。謝謝 – Dan

-1

嘗試刪除:隱藏和:從選擇器中可見。 您正在使用ID來引用您的對象,在這種情況下,您不需要ID。

$("#div1").hover(function() { 
    $("#div2:hidden").show(); 
}, function() { 
    $("#div2:visible").hide(); 
}); 

最好的問候,達維德

+1

** Quote:** _「在這種情況下,你不需要** ID **」_....你在說什麼?您剛剛重新發布了OP的代碼;這對誰有幫助? – Sparky

+0

這是一個打字錯誤,「在這種情況下你不需要它們」參照:visible和hidden選擇器。 – Davide

-1

檢查你的DOCTYPE,在這種情況下,您的示例使用:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
+0

只有<!doctype html>就足夠了。一個瀏覽器並沒有什麼與「」之間的所有stuf「 –

+0

這是XHTML 1.0T,我已經將它改爲嚴格 - 但沒有任何改變。 – Dan

0

我可能失去了一些東西,但我不明白你爲什麼要指定div2 w /在選擇器中的可見性。以下應該只是罰款:

$("#div1").mouseover(function() { 
    $("#div2").show(); 
}); 
$("#div1").mouseout(function() { 
    $("#div2").hide(); 
}); 
0

與jQuery替換所有$符號