0

我正在为导航栏创建一个新功能。当您单击它时,它曾经会下拉,但新的方式是当它们悬停在箭头(指向下方)时。

我遇到的问题是我为此编写的脚本在较新版本的 jQuery 中运行良好,但在该站点的版本中无法正常运行。

请参阅最新版本的 jQuery 示例:http: //jsfiddle.net/titanium/wDEjs/

请参阅版本 1.4.1的示例:http : //jsfiddle.net/titanium/SmhHM/

脚本本身没有问题(对于较新的脚本),但它需要更改,因此它在版本 1.4.1中工作以解决此版本中的错误/错误。即使有人知道错误/错误是什么并且可以为我指出正确的方向来解决这个问题,那也很棒。

我知道最好的办法是使用更新版本的 jQuery,但我已经尝试过了,它似乎在网站周围搞砸了一些东西(而且它是一个非常大的网站)。

这是我目前正在使用的代码(在最新版本的 jQuery 中运行良好):

HTML

<ul>
    <li>Page <span>sub</span></li>
    <li>Page <span>sub</span></li>
    <li>Page <span>sub</span></li>
    <div class="clear"></div>
</ul>

<div class="sub">
    <p>Some stuff here for the menu</p>
</div>

CSS

ul {
    margin:0;
    padding:0;
}
li {
    float:left;
    padding:0 50px;
    background-color:#eee;
}
span {
    cursor:pointer;
}
.clear {
    clear:both;
}
.sub {
    width:400px;
    height:300px;
    display:none;
    background-color:#ccc;
}

Javascript

$(document).ready(function() {
    $("span, .sub").hover(function() {
        $(".sub").stop(true, false).slideToggle();
    });
});
4

2 回答 2

-1

t know really why its working like that, but it does work with jquery 1.4.1 and if you change the second parameter of the stop, to true, it工作,有点错误,但它会ll work, cause it跳到动画的结尾,如果你把它设置为假会发生什么,如果你不工作,t let the animation finish, it然后滑动到它结束的前一个点。

于 2013-02-16T15:13:07.380 回答
-1

在这种情况下有一个解决方法(不是一个很好的方法,但它可以工作,尤其是在处理旧版本的 jQuery 库时):

<script src="/js/jquery-1.4.1.min.js"></script>
<script src="/js/jquery-1.9.1.min.js"></script>
<script>
  var jQuery_1_9_1 = $.noConflict(true);
</script>

当您调用 jQuery 函数时,不要使用全局变量,而是使用$您创建的变量。在这种情况下,将是jQuery_1_9_1

最终结果将是脚本中的这种更改:

$(document).ready(function() {
    $("span, .sub").hover(function() {
        jQuery_1_9_1(".sub").stop(true, false).slideToggle();
    });
});
于 2013-02-16T19:37:24.933 回答