如何在函数中使用这段代码

时间:2013-10-22 15:47:59

标签: javascript jquery

我有这个jQuery代码:

var vis = (function(){
    var stateKey, eventKey, keys = {
        hidden: "visibilitychange",
        webkitHidden: "webkitvisibilitychange",
        mozHidden: "mozvisibilitychange",
        msHidden: "msvisibilitychange"
    };
    for (stateKey in keys) {
        if (stateKey in document) {
            eventKey = keys[stateKey];
            break;
        }
    }
    return function(c) {
        if (c) document.addEventListener(eventKey, c);
        return !document[stateKey];
    }
})();

vis(function(){
  document.title = vis() ? 'Visible' : 'Not visible';
});

现在做的是更改页面的文档标题。如果页面不可见,则会将其更改为vise verca。

我的问题是,我该如何使用这个函数:

if page is visible{
 //do something
}
if page is not visible{
 //do something else
}

1 个答案:

答案 0 :(得分:0)

您的vis()函数在传递一个事件时绑定一个事件处理程序,否则返回状态。因此:

vis(function(event) {   
  if ( vis() ) {
    // visible   
  } else { 
   // not visible  
  } 
});

或者更详细地说:

var handler = function(){ 
  // calling vis() with no arguments will return a boolean
  if (vis()) {
    // visible
  } else {
    // not visible
  }
}

// if a handler is passed, it gets bound to the event
// thus, runs on *any* visibility state change
vis(handler);