簡體   English   中英

停止執行JavaScript,直到onclick

[英]Stop execute javascript until onclick

我正在尋找一種方法,可以停止執行javascript,直到執行onclick。

這是我的腳本,但是我不知道如何等待onclick。

<html>
<head>
<script type="text/javascript">

var stat = "*";

function setstat(but)  {
    stat = but;
}

function start() {
    alert('start');
    ...
    ...
    /* ??????? wait until stat != '*' ???????? */
    alert(stat);
    ...
    ...
}   
</script>

</head>
<body>
<input type='button' style="width: 100px;" value="Start" onclick="start();">
<br><br>
<input type='button' style="width: 100px;" value="Yes" onclick="setstat('yes')"> 
&nbsp;&nbsp;
<input type='button' style="width: 100px;"` ``value="No" onclick="setstat('no')">`
</body>
</html>

您必須在事件中“思考”。 當stat設置為“ yes”或“ no”時,您似乎想在start函數中的某個時刻執行代碼。

每個onclick按鈕都在調用一個函數,更確切地說,它實際上期望一個語句。 為什么當您按“是”按鈕時不重構代碼並執行這些操作?

要明確我的觀點:

var stat = '*';

function start() {
  // code

  //until stat != '*';

  // move this code here -->
}

function setstat(but)  {
  stat = but;
  doReallyStart();
}

function doReallyStart() {
  // to here <--
}

這將做同樣的事情,並且更具可讀性。

也許setTimeout和clearTimeout可以滿足您的情況。 您可以將您的js代碼放入setTimeout,onClick事件觸發clearTimeout

var execute = false;
var timeoutPolling = 1000;
var fn = function() {
  console.log('Hello');
};
var it = setInterval(function() {
  if (execute) {
    fn();
    clearInterval(it);
  }
}, timeoutPolling);

這在我的Chrome開發工具中有效,您只需啟用/禁用execute標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM