Javascript While或If语句用于运行set interval函数

时间:2017-05-24 11:29:51

标签: javascript jquery

我需要一个javascript,同时在DOM对象上查找条件“:visible”,并且只在DOM对象实际可见时才运行代码。

到目前为止,这是我的代码。

if (("#rightPanel").is(":visible") == true){
  // It's visible, run fetch on interval!
  setInterval(function() {
    updateChatField()
  }, 500);
} else {
    // Do Nothing!
};

我需要调整什么才能达到预期的效果?现在我得到("#rightPanel").is不是一个功能。

2 个答案:

答案 0 :(得分:2)

您忘记了$标志:

if ($("#rightPanel").is(":visible") == true){
  // It's visible, run fetch on interval!
  setInterval(function() {
    updateChatField()
  }, 500);
} else {
    // Do Nothing!
};

答案 1 :(得分:0)

实际上,如果我理解正确,您需要间隔持续运行,以便检测元素何时变为可见。我建议像:

var $rightPanel; // cache the element

function checker() {
    if ($rightPanel.is(":visible"))
         updateChatField();
}

function init() {
    $rightPanel = $("rightPanel"); // cache
    window.setInterval(checker, 500);
}

然后启动它,只需在页面加载后调用init()