jQuery/CSS非选择器和stop()问题
这是我的网站: 将鼠标移到右侧的菜单上。请注意,默认情况下,汽车服务、拖车牵引以及显示和显示是如何完全放大的。这是因为它们是更畅销的产品,大多数浏览此网站的人都在寻找这些产品 目前有一个使用以下代码的手风琴菜单设置:jQuery/CSS非选择器和stop()问题,jquery,html,selector,Jquery,Html,Selector,这是我的网站: 将鼠标移到右侧的菜单上。请注意,默认情况下,汽车服务、拖车牵引以及显示和显示是如何完全放大的。这是因为它们是更畅销的产品,大多数浏览此网站的人都在寻找这些产品 目前有一个使用以下代码的手风琴菜单设置: $(function(){ $( '.buttonEffectWrapper' ).hover ( function () { var effect = $(this).siblings().filter(":last");
$(function(){
$( '.buttonEffectWrapper' ).hover (
function () {
var effect = $(this).siblings().filter(":last");
effect.stop ().animate ( { opacity: 1}, { duration: 300 } );
$(this).stop().parent().animate({height: "110px"}, {duration: 300 } );//accordion effect here
},
function () {
var effect = $(this).siblings().filter(":last");
effect.stop ().animate ( { opacity: 0}, { duration: 300 } );
$(this).stop().parent().animate({height: "30px"}, {duration: 300 } );//accordion effect here
}
);
} );
首先,如果将鼠标水平移动到其中一个按钮上数次,它将生成一个队列。我原以为使用stop()可以解决这个问题,但事实并非如此
其次,我不希望前三个部门(汽车服务、拖车拖运和展示)在鼠标离开时崩溃。我尝试了以下方法,但它选择了其他所有方法
第三,如果你把鼠标移到一个div上,然后移到它下面的一个div上,当一个div展开而另一个div折叠时,你的鼠标会停在一个你不想要的位置。我能想到的解决这个问题的唯一方法是不允许上一个div崩溃
因此,如果我将鼠标滑过#汽车服务
,然后转到#拖车牵引
,#汽车服务
应该不会崩溃。但是,如果我从拖车牵引转到显示,那么我希望汽车服务合同。这样可以防止接口被破坏
if(!$(this).is("#car-service, #trailer-hauling, #display-and-show")){
$(this).parent().animate({height: "30px"}, {duration: 300, queue:false});
}
$(this)
引用DOM中的单个元素(或元素组)。我认为最好是测试它是否是/有一个特定的属性或过滤它,而不是使用$(这个)
选择器。首先
在animate()
第二个选项参数中,可以指定队列:
effect.animate({
opacity: 1
},{
duration: 300,
queue: false
});
秒
试试这个:
$(this).filter(function() {
return !this.id.match(/^(car-service||trailer-hauling||display-and-show)$/);
}).someMethod()...
谢谢第一个可以工作,但第二个可以使它们不再崩溃…@Jared,搞乱了动画功能。还听取了@David关于队列问题的建议。现在修好了。它为你做了什么?我明白了。。。它正在寻址(this),而实际上它需要查看父div.if(!$this).parent()是否有效。
$(this).filter(function() {
return !this.id.match(/^(car-service||trailer-hauling||display-and-show)$/);
}).someMethod()...