我需要编写一些代码,这些代码应该等到预定义的 div
为了处理下一行不再可见。我计划使用jQuery( ":visible" )
为此,我想我可以有某种类型的 while
环形。有人对如何完成这项任务有好的建议吗?
$( document ).ready(function() {
$(".scroller-right" ).mouseup(function( event ) {
alert('right');
pollVisibility();
});
});
function pollVisibility() {
if ($(".mstrWaitBox").attr("visibility")!== 'undefined') || $(".mstrWaitBox").attr("visibility") !== false) {
alert('inside else');
microstrategy.getViewerBone().commands.exec('refresh');
} else {
setTimeout(pollVisibility, 100);
}
}
$( document ).ready(function() {
$(".scroller-right" ).mouseup(function( event ) {
alert('right');
pollVisibility();
});
});
function pollVisibility() {
if (!$(".mstrWaitBox").is(":visible")) {
alert('inside if');
microstrategy.getViewerBone().commands.exec('refresh');
} else {
setTimeout(pollVisibility, 100);
}
}
div
当不可见时:
<div class="mstrWaitBox" id="divWaitBox" scriptclass="mstrDialogImpl" dg="1" ty="edt">
</div>
div
当可见时:
<div class="mstrWaitBox" id="divWaitBox" scriptclass="mstrDialogImpl" dg="1" ty="edt" visibility="visible">
</div>
最佳答案
您可以使用setTimeout
函数来轮询div
的显示状态。此实现每隔 1/2 秒检查一次 div 是否不可见,一旦 div 不再可见,则执行一些代码。在我的示例中,我们显示了另一个 div,但您可以轻松调用函数或执行任何操作。
脚本
$(function() {
setTimeout(function() {
$("#hideThis").hide();
}, 3000);
pollVisibility();
function pollVisibility() {
if (!$("#hideThis").is(":visible")) {
// call a function here, or do whatever now that the div is not visible
$("#thenShowThis").show();
} else {
setTimeout(pollVisibility, 500);
}
}
}
HTML
<div id='hideThis' style="display:block">
The other thing happens when this is no longer visible in about 3s</div>
<div id='thenShowThis' style="display:none">Hi There</div>
关于javascript - 等到 div 不可见后再处理下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19062431/