防止mousewheel事件对输入数字元素的默认行为像其他人建议的(调用“blur()”通常不会是首选的方式,因为这不会是,用户想要的)。
但。我会避免监听所有input-number元素的mousewheel事件,只有当元素在焦点(这是当问题存在)时。否则,当鼠标指针位于输入数字元素上的任何位置时,用户无法滚动页面。
jQuery的解决方案:
// disable mousewheel on a input number field when in focus
// (to prevent Cromium browsers change the value when scrolling)
$('form').on('focus', 'input[type=number]', function (e) {
$(this).on('mousewheel.disableScroll', function (e) {
e.preventDefault()
})
})
$('form').on('blur', 'input[type=number]', function (e) {
$(this).off('mousewheel.disableScroll')
})
(将焦点事件委托给周围的表单元素 – 以避免许多事件侦听器,这对性能不利。)