我試圖檢測鼠標按鍵是否已經按下,如果它在元素上移動。 在safari中,如果按下按鈕,則鼠標事件會發生變化。 Firefox不。在查詢中檢測鼠標按鍵事件
這小提琴/片斷更好解釋的那樣: Safari /鉻當滾過框變成藍色(事件= 0),但如果與滑過變紅:按下左按鈕(事件= 1)。 在Firefox中它總是紅色的(event = 1)。我認爲當鼠標懸停觸發事件時,Firefox是正確的。
問題是我需要Firefox表現得像Safari/Chrome!
http://jsfiddle.net/robertireland/5w5rxrhy/
$('td').mouseover(function(e) {
$(this).removeClass();
$('#button').text(e.which);
if(e.which==0){
$(this).addClass('bgblue');
}
if(e.which==1){
$(this).addClass('bgred');
}
});
#output {
margin-top: 10px;
border: 1px solid black;
background: #eee;
}
td{padding:10px; border:1px dotted #ccc; cursor:pointer;}
.bgred{background-color:red;}
.bgblue{background-color:blue;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table>
<div id="output">Button pressed: <span id="button"></span></div>
首先,我認爲'mouseenter'會在這種情況下,防止起泡比較合適。其次,在發射事件並擊中條件時,檢查「mousedown」。 – DevlshOne 2015-03-13 18:42:22
感謝教育我冒泡。 – MrBob 2015-03-16 12:25:48