$("#LeftArrow_Wrapper, #RightArrow_Wrapper").hover(
function () {
$("#LeftArrow_Button, #RightArrow_Button").stop(true,true).show();
}
);
当我将鼠标悬停在它上面时,我只是想让它显示箭头,但是如果我多次将鼠标滑过它,它会将show功能排队,我的理解是停止只会剪切动画任何帮助都会受到赞赏。
我已将我的代码更改为此
$("#LeftArrow_Button, #RightArrow_Button").hover(function () {
$(this).stop(true,true).show();
});
我仍然在排队问题
我已经解决了问题,谢谢你的答复。停止工作我的想法,我只是一个涂料,并正在更新错误的.js文件。 FACE PALM
答案 0 :(得分:0)
.stop
方法停止所选元素上的动画,
你是在错误的元素上停止动画:
$("#LeftArrow_Wrapper, #RightArrow_Wrapper").hover(function () {
$(this).stop(true,true).show();
});
答案 1 :(得分:0)
根据我如何最好地了解您的情况,澄清一些事情:
(1) .hover()
实际上是双重的:您通常会提供一个函数回调函数,以便mouseover
执行您指定的元素和强大>另一个在你mouseout
时打电话。当您只提供一个时,它会对两者执行相同的操作。
$(element).hover(
function () {
// to execute on mouseover
},
function () {
// to execute on mouseout
}
);
(2)在事件处理程序中,this
引用了应该发生事件的元素。几乎没有必要在大多数时间再次选择元素。
$('#LeftArrow_Wrapper, #RightArrow_Wrapper').hover(function () {
$(this).stop(true, true).show();
});
(3) .stop()
停止动画。单独调用.show()
不会触发元素上的jQuery动画(因为它是瞬时的),但是调用.show(duration)
例如,因为jQuery执行淡入淡出+大小一段时间。
总而言之,原始代码中发生的事情是,当您将鼠标悬停在某个元素上时,它会显示 #LeftArrow_Wrapper
和#RightArrow_Wrapper
(因为您的原来(2)),但是当你鼠标移出时它也会做同样的事情,因为你只为.hover()
提供了一个回调(参见(1))。
你对.stop()
的调用毫无用处是没有用的,因为它没有动画可以停止(除非在这段代码之外还有其他事情发生 - 它肯定不会停止你的呼叫.show()
)。
你的问题不是最详细的,所以我想你想做的是这样的:
$('#LeftArrow_Wrapper, #RightArrow_Wrapper').hover(
function () {
$(this).show();
},
function () {
$(this).hide();
},
);