显示完成后直接让元素隐藏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 显示之前您几乎看不到它。
我找不到任何其他方法来做到这一点。
替换您的代码:
$("#main").show(500, function(){
$("#loading").hide();
});
有:
setTimeout(function () {
$("#main").show(0, function(){
$("#loading").hide();
});
}, 500);
或使用:
$("#main").delay(500).show(0, function(){
$("#loading").hide();
});
在隐藏加载前设置超时div。
setTimeout(function(){
$("#loading").hide();
}, 1000);
向显示添加了 jQuery 完成事件处理程序,因此它将在完成时隐藏加载 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);
});
看到这个答案:
我试图简单地隐藏我的加载 div 一旦主 div 在 JQuery 中完全加载,我在网上尝试过的所有建议似乎都不起作用并且我卡住了。
我最初尝试按顺序执行此操作:
$("#main").show();
$("#loading").hide();
但是隐藏功能在显示完成之前触发
然后我尝试在回调函数中做如下:
$("#main").show(500, function(){
$("#loading").hide();
});
但这触发得太早了,所以加载会消失,半秒后什么也没有,直到主要 div 显示这不是我想要的。
然后我尝试使用如下所示的promise方法:
$("#main").show().promise().done(function(){
$("#loading").hide();
});
但这会立即隐藏加载 div 并且在主要 div 显示之前您几乎看不到它。
我找不到任何其他方法来做到这一点。
替换您的代码:
$("#main").show(500, function(){
$("#loading").hide();
});
有:
setTimeout(function () {
$("#main").show(0, function(){
$("#loading").hide();
});
}, 500);
或使用:
$("#main").delay(500).show(0, function(){
$("#loading").hide();
});
在隐藏加载前设置超时div。
setTimeout(function(){
$("#loading").hide();
}, 1000);
向显示添加了 jQuery 完成事件处理程序,因此它将在完成时隐藏加载 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);
});
看到这个答案: