Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Javascript 此选择器不支持';我不能超时工作_Javascript_Jquery - Fatal编程技术网

Javascript 此选择器不支持';我不能超时工作

Javascript 此选择器不支持';我不能超时工作,javascript,jquery,Javascript,Jquery,有一个隐藏的div,必须在延迟几秒钟后显示,并根据其高度获得样式。这些隐藏的div是动态的。因此,它们每个都有一个独特的高度。找不到隐藏div的高度,因此,我在删除隐藏元素的类后添加了高度计算。现在,当我使用实际类或删除超时时,脚本似乎正在工作。在超时内使用(此)时,不会发生任何事情,并且控制台中也不会出现错误 if($(“.bubble”)[0]){ $(“.bubble”)。每个(函数(){ setTimeout(函数(){ $(this.removeClass(“隐藏”); var bub

有一个隐藏的div,必须在延迟几秒钟后显示,并根据其高度获得样式。这些隐藏的div是动态的。因此,它们每个都有一个独特的高度。找不到隐藏div的高度,因此,我在删除隐藏元素的类后添加了高度计算。现在,当我使用实际类或删除超时时,脚本似乎正在工作。在超时内使用(此)时,不会发生任何事情,并且控制台中也不会出现错误

if($(“.bubble”)[0]){
$(“.bubble”)。每个(函数(){
setTimeout(函数(){
$(this.removeClass(“隐藏”);
var bubblehe=$(this).height();
$(this.css('top',bubblehe);
}, 2000)
});
$(document.body)。单击(函数(){
$(“.bubble”).addClass(“隐藏”);
}
}
.hide(显示:无;)

setTimeout
有自己的上下文,因此
其中的
将不是您的节点

if($(".bubble")[0]) {       
        $(".bubble").each(function(){
            const self = this;
            setTimeout(function(){
                $(self).removeClass("hide");
                var bubblehe = $(this).height();
                $(self).css('top',bubblehe);
            }, 2000)

        });

        $(document.body).click(function(){
            $(".bubble").addClass("hide");
        }
}

setTimeout
有自己的上下文,因此其中的
将不是您的节点

if($(".bubble")[0]) {       
        $(".bubble").each(function(){
            const self = this;
            setTimeout(function(){
                $(self).removeClass("hide");
                var bubblehe = $(this).height();
                $(self).css('top',bubblehe);
            }, 2000)

        });

        $(document.body).click(function(){
            $(".bubble").addClass("hide");
        }
}
//缓存重复的选择器
var$bubble=$('.bubble');
//长度>0是真实的
如果($bubble.length){
$bubble.each(函数(){
//缓存jQuery实例化
//这将解决超时中此值的变化
//并停止重复的jQuery实例化
var$this=$(this);
setTimeout(函数(){
美元这个
.removeClass(“隐藏”)
.css('top',$this.height());
}, 2000);
});
$(document.body)。单击(函数(){
$bubble.addClass(“隐藏”);
});
}
html,正文{最小宽度:640px;最小高度:480px;}
.hide{display:none;}

气泡1
气泡2
//缓存重复的选择器
var$bubble=$('.bubble');
//长度>0是真实的
如果($bubble.length){
$bubble.each(函数(){
//缓存jQuery实例化
//这将解决超时中此值的变化
//并停止重复的jQuery实例化
var$this=$(this);
setTimeout(函数(){
美元这个
.removeClass(“隐藏”)
.css('top',$this.height());
}, 2000);
});
$(document.body)。单击(函数(){
$bubble.addClass(“隐藏”);
});
}
html,正文{最小宽度:640px;最小高度:480px;}
.hide{display:none;}

气泡1

气泡2
假设您没有使用预处理器,您的CSS语法不正确:
.hide{display:none;}
连同下面的答案,您应该真正缓存您的
$(此)
选择器,这样您就不会反复实例化同一个jQuery对象。@Rory McCrossan,怎么回事?您有
()
在您的CSA中,您没有使用预处理器,而不是
{}
,您的CSS语法不正确:
.hide{display:none;}
连同下面的答案,您应该真正缓存
$(此)
选择器,这样您就不会反复实例化同一个jQuery对象了。@Rory McCrossan,怎么会这样?您的cssSomewhat中有
()
而不是
{}
,现在可以工作了。但是高度最终大约是实际高度的10倍。现在有些工作了。但是高度最终大约是实际高度的10倍。