Javascript $.slideToggle()&;$。hover()动画队列问题
我试图在jQuery中设置一个非常基本的悬停动画。将鼠标移到div上,主要内容向下滑动,将鼠标向上滑动Javascript $.slideToggle()&;$。hover()动画队列问题,javascript,jquery,Javascript,Jquery,我试图在jQuery中设置一个非常基本的悬停动画。将鼠标移到div上,主要内容向下滑动,将鼠标向上滑动 <script type="text/javascript"> $(function () { $('.listItem').hover(function () { $(this).find('.errorData').slideToggle('slow'); }); });</script> 我
<script type="text/javascript">
$(function () {
$('.listItem').hover(function () {
$(this).find('.errorData').slideToggle('slow');
});
});</script>
我现在的问题是,这似乎只适用于第一个鼠因和鼠尾。之后,动画不再触发,什么也不会发生。这是谷歌Chrome开发频道
这似乎是加剧了如何快速移动鼠标进出
我似乎不知道问题是什么,这有一个正在工作(并且在我的电脑上坏了)的例子
编辑:我怀疑这是jQuery 1.4.2中的一个bug,并提交了一份bug通知单:试试看
.stop(true,true)
或者你可以用这个 像冠军一样工作:
$('.subpage-block').hover(function(){
$('.subpage-block-heading span', this).stop(true,true).fadeToggle('fast');
$('.subpage-block-content', this).stop(true,true).slideToggle();
});
也许更好
$('.listitem').hover(function(){
if (!$(this).find('.errorData').hasClass('down') &&
!$(this).find('.errorData').hasClass('up')) {
$(this).find('.errorData').addClass('down').slideDown('fast', function() {
$(this).removeClass('down');
});
}
}, function() {
if (!$(this).find('.errorData').hasClass('up')) {
$(this).find('.errorData').addClass('up').slideUp('fast', function() {
$(this).removeClass('up');
});
}
});
这样,队列最多为2个,一个在上升时,另一个在下降时。
在第一种情况下,我们可以防止卧倒。这种方法有效。它纠正了动画不再工作的问题,但它现在来回跳跃并闪烁,而不是平滑的动画。是的。。。真的会的。这是因为悬停的行为。。。嗯,你可以试试这个插件。。。我经常使用它,这个插件给了我很多我想要的功能。修改你的答案,我会这样做:)好吧,我很高兴它确实帮助了你:)这将如何改进、纠正或改变公认的答案?
$('.subpage-block').hover(function(){
$('.subpage-block-heading span', this).stop(true,true).fadeToggle('fast');
$('.subpage-block-content', this).stop(true,true).slideToggle();
});
$('.listitem').hover(function(){
if (!$(this).find('.errorData').hasClass('down') &&
!$(this).find('.errorData').hasClass('up')) {
$(this).find('.errorData').addClass('down').slideDown('fast', function() {
$(this).removeClass('down');
});
}
}, function() {
if (!$(this).find('.errorData').hasClass('up')) {
$(this).find('.errorData').addClass('up').slideUp('fast', function() {
$(this).removeClass('up');
});
}
});