使元素隐藏后直接显示完成jquery
Make element hide directly after show is completed jquery
我试图简单地隐藏我的加载div一旦主div在JQuery中完全加载,所有的建议,我在网上尝试似乎不工作,我卡住了。
我最初试着按顺序这样做:
$("#main").show();
$("#loading").hide();
但是隐藏功能在显示完成之前被触发
然后我尝试在回调函数中这样做:
$("#main").show(500, function(){
$("#loading").hide();
});
但是这个触发得太早了,所以加载会消失,在主div显示之前半秒什么都没有,这不是我想要的。
然后我尝试使用promise方法,如下所示:
$("#main").show().promise().done(function(){
$("#loading").hide();
});
但是这立即隐藏了加载div,在主div显示之前你几乎看不到它。
我找不到其他方法来做这件事。
在隐藏加载div前设置一个超时时间
setTimeout(function(){
$("#loading").hide();
}, 1000);
替换代码:
$("#main").show(500, function(){
$("#loading").hide();
});
与:setTimeout(function () {
$("#main").show(0, function(){
$("#loading").hide();
});
}, 500);
或使用:
$("#main").delay(500).show(0, function(){
$("#loading").hide();
});
添加了jQuery complete事件处理程序到show,所以它会隐藏加载div当它完成:
$("#main").show(complete(function(){
$("#loading").hide();
});
这是你要找的吗?
$("#main").show(1000, function() {
$("#loading").hide();
});
#main {
width: 100px;
height: 100px;
background-color: red;
}
#loading {
position: absolute;
top: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="main" hidden></div>
<div id="loading">Loading...</div>
你可以这样做:
$('#outer').on('click', function(event)
{
$('#inner').show(0).delay(500).hide(0);
});
查看答案:https://stackoverflow.com/a/4508657/1085414
相关文章:
- 如何在页面重新加载时显示jquery ui对话框
- 如何为显示jquery滑块值的文本框设置默认值
- 突出显示jQuery中单词之间的空格
- 不显示 jQuery 不显眼的验证摘要
- Rails-jQuery 为什么我必须单击两次才能显示 jQuery 效果
- 如何在页面导航上显示jquery警报
- Slider和Date Picker未显示JQuery
- 键入时不要显示jQuery UI自动完成
- 如何显示jQuery自动完成响应并选择它
- 如何在返回后将状态保持为突出显示JQuery树视图的选定节点
- 检测文本是否在鼠标上突出显示jQuery
- 30 秒后显示 Jquery UI 对话框
- X 可编辑的编辑值不显示 jquery 集值
- 显示 jQuery 复选框选择
- 用于显示字段的工具提示和显示 Jquery 验证中的错误的工具提示器
- 如果站点上存在多个滑块,则显示 Jquery UI 滑块的值
- 谷歌地图信息框能够显示JQuery UI小部件
- 在标签中以 asp.net 显示 jQuery 的结果
- 当 Javascript 在浏览器中关闭时显示 Jquery .slide() 表单
- 在 Leaflet Map 上显示 jQuery 动态 GeoJSON 内容