我正在寻找一种停止执行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>
答案 0 :(得分:1)
你必须在事件中“思考”。当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 <--
}
这样做也会更具可读性。
答案 1 :(得分:0)
也许setTimeout和clearTimeout可以满足您的需求。 你可以把你的js代码放在setTimeout,onClick事件触发器clearTimeout
答案 2 :(得分:0)
var execute = false;
var timeoutPolling = 1000;
var fn = function() {
console.log('Hello');
};
var it = setInterval(function() {
if (execute) {
fn();
clearInterval(it);
}
}, timeoutPolling);
这适用于我的Chrome开发工具,您只需启用/禁用execute
标记。