2010-08-17 34 views
0

Firefox工作正常,Opera很棒,Chrome也運行良好。 IE是問題。它似乎是IE的任何版本。調用兩種類型的jquery - IE中的問題

該網站是http://s91532.gridserver.com,無論您點擊哪個地方,它都會從頂部降低我們的JavaScript菜單。

當你將鼠標懸停在圖片它會顯示正確的路徑和一切,但是當你點擊它剛剛落下部指數下拉

我已刪除違規的jQuery這是一箇舊版本的,我現在只是想問下面的代碼是site.js:

jQuery.noConflict(); 

jQuery(document).ready(function(){ 
    $('p#minguide-link a').click(function(){ 
     if ($('#index-wrapper').is(':hidden')) { 
     $('#index-wrapper').slideDown('medium'); 
     $('p#minguide-link a').addClass('down'); 
     return false; 
     } else { 
     $('#index-wrapper').slideUp('medium'); 
     $('p#minguide-link a').removeClass('down'); 
     return false; 
     } 
    }); 

    var group_width = $('li#nav_groups ul').width(); 
    var group_adj = ((group_width*-1)/2)+79; 
    var care_width = $('li#nav_care--serve ul').width(); 
    var care_adj = ((care_width*-1)/2)+79; 
    var sermon_width = $('li#nav_sermons ul').width() + 2; 
    var sermon_adj = ((sermon_width*-1)/2)+79; 

    $('li#nav_groups.current ul').css({"left":"auto", "margin-left":group_adj}); 
    $('li#nav_care--serve.current ul').css({"left":"auto", "margin-left":care_adj}); 
    $('li#nav_sermons.current ul').css({"left":"auto", "margin-left":sermon_adj}); 
}); 

只有這樣被稱爲沒有任何反應。從我所知道的看來,它現在已經在IE中修復了。

現在我如何才能正確調用site.js,使菜單正確下拉。

+2

你真的不應該使用2個版本的jQuery!刪除舊版本併發布不適用於1.4.2的代碼。你最好解決這個問題。 – Marko 2010-08-17 21:42:13

+1

使用1版本的jQuery,根據舊的jQuery版本更新代碼。否則,沒有好的修補器。 – BGerrissen 2010-08-17 21:45:39

+0

我在IE8中看不到所描述的行爲。在IE8中,當我點擊圖像時,它似乎嘗試啓動某種「燈箱」的東西,但該東西不起作用,並提出了一個錯誤警報()。 – Pointy 2010-08-17 21:45:41

回答

0

沒有任何有用的信息(而不是鏈接除外),所有我能做的就是指向你的這篇文章:

http://codex.wordpress.org/Function_Reference/wp_enqueue_javascript/

您應該使用1.4.2。我從來沒有遇到任何問題。你正在調用jQuery的衝突版本,所以只需使用更好的版本。

另外,site.js在兼容模式下不使用jQuery。你應該是第一線更改爲

jQuery(document).ready(function(){

$(document).ready(function(){

編輯

您的網站是在無衝突的模式下運行。你必須在site.js的開頭去掉$。它在發生任何事情之前拋出一個錯誤。要解決這個問題,您只需將第一個$更改爲jQuery即可。雖然所有其他$都很好。

這裏是jQuery 1.4.2中的site.js。用這個替換整個文件的內容:

jQuery(document).ready(function() { 
    $('p#minguide-link a').click(function(){ 
     $('#index-wrapper').slideToggle(); 
     $('p#minguide-link a').toggleClass('down'); 
     return false; 
    }); 

    var group_width = $('li#nav_groups ul').width(); 
    var group_adj = ((group_width*-1)/2)+79; 
    var care_width = $('li#nav_care--serve ul').width(); 
    var care_adj = ((care_width*-1)/2)+79; 
    var sermon_width = $('li#nav_sermons ul').width() + 2; 
    var sermon_adj = ((sermon_width*-1)/2)+79; 

    $('li#nav_groups.current ul').css({"left":"auto", "margin-left":group_adj}); 
    $('li#nav_care--serve.current ul').css({"left":"auto", "margin-left":care_adj}); 
    $('li#nav_sermons.current ul').css({"left":"auto", "margin-left":sermon_adj}); 
}); 

此外,我真的建議你看看jQuery's API。這是非常容易學習和非常直觀地組織/佈局。搜索是一件輕而易舉的事情。

+0

我已經將呼叫移至1.3並編輯了site.js以添加您的代碼。依然沒有。 IE工作正常,但現在菜單不下降。 – Matthew 2010-08-17 22:00:23

0

馬修,更換了的jQuery 1.4腳本標記了jQuery 1.3腳本標籤,請確保所有其他腳本標籤被放置在jQuery腳本標記之後;)

+0

我已經試過了,它不起作用。它會調用1.4.2兩次 – Matthew 2010-08-17 22:13:04

0

我要重申的是你做的一切合作的強烈推薦向上最新版本的庫,但你可以試試這個:包括老的jQuery,那麼這條線之後補充一點:

<script> 
    jQuery.noConflict(); 
</script> 

然後包括修改網站。js文件,更改如下:

jQuery(function($) { 
    // existing code 
}); 
+0

好吧,所以這有助於允許菜單在按下時返回wdown。但是,它現在在IE7中顯示奇怪的東西。所以我點擊下拉菜單,看起來它正在載入一張圖片。但是當我點擊右邊的其中一個按鈕時,它會關閉菜單。 Darned JS! – Matthew 2010-08-17 22:09:18

+0

使用1.3會殺我,但我需要爲下拉菜單加載一些東西。 – Matthew 2010-08-17 23:14:14

+0

@Matthew,我感覺到你的痛苦,但我認爲你只需要選擇:使用2個jQuery版本進行黑客攻擊的痛苦,或者爲了使事情與1一起工作而感到痛苦。 – Pointy 2010-08-17 23:31:36