[英]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')">
<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.