我還沒有專門測試組合框,但Chrome和IE在event.pageX
和event.pageY
中都顯示出奇怪的行爲,在打開的select
元素中。
一個可能的解決方案是附加一個mousemove
事件,並保存其event.pageX
和event.pageY
座標爲click
事件中使用。
下面是一個代碼段,用於顯示事件座標mousedown
,mouseup
,click
,和mousemove
。對於select
元素,您會注意到瀏覽器之間的不一致。當select
框打開時,Chrome甚至不會註冊mousemove
。
$(window).on('mousedown mouseup click mousemove', function(event) {
$('#'+event.type).html('<td>'+event.type+
'<td>'+event.target+
'<td>'+event.pageX+
'<td>'+event.pageY
)
});
div {
margin: 1em;
}
table {
border-spacing: 0px;
font: 12px arial;
}
td, th {
border: 1px solid #ddd;
padding: 0.5em;
}
th {
background: #def;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<button>Test</button>
<select>
<option>Option 1
<option>Option 2
<option>Option 3
</select>
</div>
<hr>
<table>
<tr><th>event.type<th>event.target<th>event.pageX<th>event.pageY
<tr id="click">
<tr id="mouseup">
<tr id="mousedown">
<tr id="mousemove">
</table>