你的代碼做的是,它補充說,元素click事件偵聽器,之後點擊處理程序將不管你的x值的觸發器,因爲你沒有任何檢查內單擊處理程序。
解決方法是隻創建一次點擊偵聽器,並檢查其中的值爲x
。事情是這樣的:
document.getElementById('a').onclick = function(){
if(x <= 1200 && x >= 600 && n == true) {
audio.play();
n = false;
}
}
看到這個(我已經更換了音頻與格高亮玩,但它的原理相同):
var r = document.getElementById('r');
var n = true;
var x = 1000;
document.getElementById('a').onclick = function(){
if(x <= 1200 && x >= 600 && n == true) {
r.className = 'playing';
n = false;
printN();
setTimeout(function(){
r.className = '';
}, 2000);
}
}
function toggleN(){n = !n;printN()}
function printN(){document.getElementById('n').textContent = 'n is set to ' + n;}
function randomizeX(){x = Math.floor(Math.random() * 1200);printX()}
function printX(){document.getElementById('x').textContent = 'x equals ' + x;}
#r {display: inline-block; width: 50px; height: 50px; background: #ccc; transition: background 1s linear;}
#r.playing {background: green}
<button id="a">Hit me</button><br><br>
<div id="r"></div>
<p id="x">x equals 1000</p>
<p id="n">n is set to true</p>
<button onclick="toggleN()">Toggle n</button>
<button onclick="randomizeX()">Randomize x</button>
你是什麼意思JQuery不適用於Chrome? – millerbr
除了millerbr的評論:jQuery在Chrome上運行得非常好。沒有必要,無論如何,但它肯定有效。 –
@AMACB,它爲什麼重要 - OP說音頻播放,甚至超過需要。 :) – Shomz