0
我有一個與連接的事件監聽器的標記列表,每個李包含一個或兩個div和想法是做一些事情取決於什麼div被點擊。 HTML樣本:Firefox事件觸發問題
<ul id="list">
<li><div class="first a"></div><div class="second b c"></div></li>
<li><div class="first f"></div></li>
<li><div class="first e"></div><div class="second d r"></div></li>
…
JS樣本:
var currentLang = 'en';
var failCounter = 0;
var currentArg = args[Math.floor(Math.random() * args.length)];
var previousArgs = [];
function keyClicked(event) {
if (event.target.className.split(' ').indexOf(currentArg) > -1) {
textBox.style.opacity = 0;
setTimeout(function() {
textBox.innerHTML = wonMessages[currentLang];
textBox.style.opacity = 1;
wrapper.className = 'alert alert-success wrapper-active';
}, 250);
wrapper.onclick = function() { location.href = "…" };
list.removeEventListener('click', keyClicked);
}
else {
if (failCounter < 1) {
failCounter++;
previousArgs.push(currentArg);
do { currentArg = args[Math.floor(Math.random() * args.length)]; }
while (previousArgs.indexOf(currentArg) > -1);
textBox.style.opacity = 0;
setTimeout(function() {
textBox.innerHTML = wrongMessages[currentLang];
textBox.style.opacity = 1;
wrapper.className = 'alert alert-warning';
}, 250);
}
else {
textBox.style.opacity = 0;
setTimeout(function() {
textBox.innerHTML = lostMessages[currentLang];
textBox.style.opacity = 1;
wrapper.className = 'alert alert-danger';
}, 250);
list.removeEventListener('click', keyClicked);
}
}
}
list.addEventListener('click', keyClicked);
的問題是,雖然它工作正常,在IE和Chrome,火狐出於某種原因不火的事件當first
類的一個div (如果li
僅包含一個div,則爲li
中的第一個或唯一一個)被單擊。 Firefox只識別類second
的divs上的點擊。 任何想法,爲什麼?這些瀏覽器之間有什麼不同?
該是等待jQuery專家的時候了,但不是在javascript中。:) –
@Qeremy jQuery與純JS代碼有什麼關係? – yxfxmx
你還沒有定義'currentNote' – freefaller