Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery/CSS非选择器和stop()问题_Jquery_Html_Selector - Fatal编程技术网

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()...