我遇到了一個奇怪的問題,我需要一些幫助來弄清楚這件事情。我有一個DIV中(其位置:絕對)簡單的按鈕,下面的代碼:mousedown偵聽器在絕對定位元素上無法在Firefox中工作
document.querySelector('.mask')
.addEventListener('mousedown', e => console.log(e.type))
button {
position: relative;
width: 200px;
height: 60px;
background: none;
border: 1px solid #1c90f3;
}
.mask {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(28, 144, 243, 0.2);
}
<button type="button">
click
<div class="mask"></div>
</button>
所有我需要的是mousedown
監聽器添加到.mask
元素。簡單的權利?
呃..事實證明Firefox有一些問題。
請檢查現場演示:https://jsfiddle.net/fzwbb3dp/
當您打開控制檯時,您可以看到在點擊按鈕後,Chrome會在mousedown
事件中記錄正確的消息。
但在Firefox控制檯中沒有顯示。
在這一點上,我完全不知道這個問題的根源是什麼,所以我會非常感謝,如果你能爲我提供一些指導如何解決這個問題。
謝謝。
我會認爲這是因爲Firefox有更好的按鈕規則,並讓他們如何應該,檢查出[這個問題](http://stackoverflow.com/questions/26402033/missing-click-event-for-span -inside-button-element-on-firefox)來解決問題。 – George
@cookieMan如果您將.mask更改爲按鈕,那麼它將起作用,但隨後會出現一個新問題,即每個按鈕都會與此事件綁定。 –