0

我有两个 javascript 函数

searchButtonClicked()
hidemap()

searchButtonClicked()被调用body onload

searchButtonClicked()有时没有反应。所以我想让它尝试执行 5 秒,如果它不执行我想调用hidemap().

请帮忙。提前致谢。乌迪

这是功能

function searchButtonClicked() {
    if (inlocatorHubMode) {
    locatorHubSearch();
    }
    else {
    search();
    }
}
4

2 回答 2

1

我假设 searchButtonClicked 是一个 AJAX 请求。

如果是这种情况,您可以使用 setTimeout 和回调的组合来实现您的目标。

var searchTimeout = null;

function searchButtonClicked(){
  searchTimeout = setTimeout(requestFailed, 5000);

  //If you're using jQuery, something like this
  $.ajax({
    url: "service.php",
    success: requestSuccess
  });

  //If you're not, something like this
  xmlhttp.onreadystatechange=(function(){
    if(xmlhttp.readyState==4 && xmlhttp.status==200){
      requestSuccess();
    }
  });  
}

function requestSuccess(){
  clearTimeout(searchTimeout);
  //Yay! It succeeded!
}

function requestFailed(){
  hideMap();
  //It didn't unfortunately =[
}

编辑:编辑说它实际上不是 AJAX 请求。把它留在这里,以防它对某人有用。

于 2013-02-13T11:56:34.663 回答
0

javascript中有一个函数

window.setTimeout("javascript function",milliseconds);

此函数等待指定的毫秒数,然后执行指定的函数。

在您的情况下,您可以在函数开始时设置超时。这样在指定的毫秒后,您的第二个函数将执行

于 2013-02-13T12:33:26.117 回答