2015-05-14 86 views
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上的點擊。 任何想法,爲什麼?這些瀏覽器之間有什麼不同?

+0

該是等待jQuery專家的時候了,但不是在javascript中。:) –

+0

@Qeremy jQuery與純JS代碼有什麼關係? – yxfxmx

+0

你還沒有定義'currentNote' – freefaller

回答

0

如果它可能對某人有幫助 - 我找到了解決方案。問題在於CSS。應該觸發事件的Div在負載狀態下具有負Z-index設置。事實證明,由於某種原因,firefox拒絕觸發z-index爲負的元素的事件。