2012-07-26 72 views
0

我對Internet Explorer有一個奇怪的問題,我寫了一個導航代碼,它在Chrome和FF上工作完美,而且它在IE中工作一半(不知道如何)。所以這裏是我的問題jQuery腳本不能在IE上正常工作

當我懸停在鏈接上打開一個超級菜單,並刪除當前錨點和前一個的邊界右側。 (見下圖)

http://s11.postimage.org/7vwtigsxv/nav.png

而且這是我的鏈接懸停是怎麼看(我設法使它在所有的瀏覽器:Chrome瀏覽器,FF,Safari和IE 6-9

http://s11.postimage.org/9c8c0lvur/nav_hover.png

當我懸停在鏈接之外時,如果我懸停起來,邊界將無任何問題地回來,但是當我向下盤旋時,上一個鏈接的邊界不會出現返回(見下圖)

我將在評論中包含第三張圖片,因爲我不能發佈超過2個鏈接。

這是我在寫的jQuery

$(".menu li").hover(
    function() { 
    var result = $(this).index();   
    var item = $('a.mainnav')[result - 1]; 

    $(this).addClass("hover"); 
    $(this).find('a.mainnav').css('border-right','none'); 
    $(this).parent().find(item).css('border-right','none'); 
    }, 
    function() { 
    var result = $(this).index();   
    var item = $('a.mainnav')[result - 1]; 

    $(this).removeClass("hover"); 
    $(this).find('a.mainnav').css('border-right','1px solid #000'); 
    $(this).parent().find(item).css('border-right','1px solid #000'); 
    } 
); 

人知道爲什麼這個問題發生的代碼?

p.s.對不起,我不能直接發佈圖片,因爲我是新的。

+0

這就是第三圖像: http://s11.postimage.org/50jqbloxv/nav_out_down.png – 2012-07-26 09:30:11

+0

是不可能做到這一點的CSS?爲什麼? – 2012-07-26 09:52:15

+0

@VainFellowman,因爲如果我使用CSS3,它不會在IE上工作,因爲它不支持nth-child() – 2012-07-26 12:31:50

回答

0

我重構了你的代碼。離開懸停狀態時;是否可以從所有a.mainnav元素中刪除邊框右側的樣式?他們會回到你的CSS定義。

$(".menu li").hover(
    function() {   
    var item = $('a.mainnav')[$(this).index() - 1]; 

    $(this).addClass("hover"); 
    $(this).find('a.mainnav').css('border-right','none'); 
    item.css('border-right','none'); 
    }, 
    function() {  
    $(this).removeClass("hover"); 
    $(item).find('a.mainnav').css('border-right',''); 
    } 
);