2010-08-17 32 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