javascript - 等到 div 不可见后再处理下一行

标签 javascript jquery

我需要编写一些代码,这些代码应该等到预定义的 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,但您可以轻松调用函数或执行任何操作。

http://jsfiddle.net/vHmq6/1/

脚本

$(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/

相关文章:

javascript - AngularJS:使用 element.bind ('input' 访问自定义指令内的事件)

jquery - JQuery Mobile 按钮的颜色不会改变颜色

javascript - jQuery 选项卡插件在嵌套超链接时创建额外的 anchor 标记

javascript - 绑定(bind) Mootools 事件和调用类方法的问题

javascript - 我怎样才能看到这个网站 www.samy.pl 的源代码?

javascript - 如何使用 jquery Validation 验证 Formspree?

javascript - 完整日历不显示所选日期

php - 使用jquery ajax将php页面页面输出加载到html div中

javascript - 如何插入对移动设备禁用且仅适用于桌面的 JavaScript 代码?

不会取代 javascript 的 java 框架