2013-02-16 57 views
0

我正在为导航栏创建一个新功能。它用来在你点击它时下降,但新方法是当他们将箭头悬停(指向下)时。SlideToggle()在悬停事件(jQuery 1.4.1)上无法正常工作

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

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

请参阅例如与版本1.4.1http://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(); 
    }); 
}); 

回答

-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(); 
    }); 
}); 
+0

这不是一个非常有效的解决方案。 – MacMac 2013-02-16 19:39:38

+0

专业编码的问题是在一定的时间内找到有效的解决方案。如果你花费的时间超过你为工作引用的时间,你就会失去钱。如果你没有在工作中赚钱,你就不会赚钱,也不能再支付账单。所以就有效的解决方案而言,这是解决问题的解决方案。有更好的主意吗? – 2013-02-17 00:14:52

-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要工作,buggier一点,但它ll work, cause it会跳到动画的结尾,如果你离开那虚假发生的事情是,如果你不t let the animation finish, it会然后滑动到前点它结束。

+1

不,这个想法是没有插队到了最后,但第一个参数清除队列。这样下拉不会消失。在jQuery的后续版本中有一个明确的解决方案,它具有相同的错误,高达1.6.4。这不能回答我的问题。 – 2013-02-16 15:33:47