0

我在我的实时站点上遇到了问题,而在 Internet Explorer 中首次加载页面时,jQuery 将不会加载,并且会抛出错误“SCRIPT438:对象不支持此属性或方法”。当我重新加载页面时,此错误通常会消失。

这是我的代码:

<script type="text/javascript">
    jQuery(document).ready(function() {         
        jQuery(".item-473 a").hover(function() {
           jQuery('.menu_image').removeAttr('style').attr('style', 'background-image: url(/images/volunteers_navbar.png);');
            }, function() {
                jQuery('.menu_image').removeAttr('style').attr('style', 'background-image: url(/images/adults_navbar.png);');
            });

这是我的 HTML:

<ul class="nav-child unstyled small">
<div class="menu_image" style="background-image: url(/images/adults_navbar.png);"></div>
<li class="item-472">
<a href="/activities/adults">Adults</a>
</li>
<li class="item-473">
<a href="/activities/volunteers">Volunteers</a>
</li>
<li class="item-474">
<a href="/activities/children-schools">Children & Schools</a>
</li>
<li class="item-475">
<a href="/activities/clubs-coaches">Clubs & Coaches</a>
</li>
</ul>

我已经尝试了一些事情,但我似乎无法阻止这个问题的发生。控制台说问题出在这一行:

jQuery(".item-473 a").hover(function() {

有谁知道为什么会发生这种情况?谢谢

4

1 回答 1

0

只是想我会回答这个问题,以防其他人遇到这个问题。

我发现这个问题只在 Internet Explorer 10 中发生,当时我正在实现 jCycle Lite 和 NivoSlider 等 jQuery 库插件。

我发现用 if 语句包装我的 jQuery 函数调用消除了正在发生的问题并允许页面正确加载。

例如:

            jQuery('.banner_slideshow .bannergroup_banner_slider').nivoSlider({
                effect: 'random'
            });

变成:

if(jQuery('.banner_slideshow .bannergroup_banner_slider').length) {
            jQuery('.banner_slideshow .bannergroup_banner_slider').nivoSlider({
                effect: 'random'
            });
        }

我不完全确定为什么这会导致 IE10 出现问题,但它已对问题进行了排序,因此希望对其他人有所帮助。

谢谢

于 2013-02-07T14:10:06.617 回答