在 IE 11 javascript 中输入事件没有被触发
In IE 11 javascript input event is not getting fired
我正在尝试使用范围控制获取 0 到 10 之间的分数。如果没有与范围控制进行交互,那么我需要禁用下一步按钮。这在 chrome 中工作正常,但在 IE 11 中,当范围值被更改时,下面的代码不会被调用。如何解决这个问题?
$( 'input[type="range"]' ).on( 'input', function () {
var control = $( this ),
controlMin = control.attr( 'min' ),
controlMax = control.attr( 'max' ),
controlVal = control.val(),
controlThumbWidth = control.data( 'thumbwidth' );
var range = controlMax - controlMin;
var position = ( ( controlVal - controlMin ) / range ) * 100;
var positionOffset = Math.round( controlThumbWidth * position / 100 ) - ( controlThumbWidth / 2 );
var output = control.next( 'output' );
output
.css( 'left', 'calc(' + position + '% - ' + positionOffset + 'px)' )
.text( controlVal );
$( this ).attr( "data-modified", "1" );
$( "#next" ).removeAttr( "disabled" );
} );
我认为 IE11 在更改范围输入的范围时触发更改事件,而不是输入事件。
这是一个有趣的 comparison
我正在尝试使用范围控制获取 0 到 10 之间的分数。如果没有与范围控制进行交互,那么我需要禁用下一步按钮。这在 chrome 中工作正常,但在 IE 11 中,当范围值被更改时,下面的代码不会被调用。如何解决这个问题?
$( 'input[type="range"]' ).on( 'input', function () {
var control = $( this ),
controlMin = control.attr( 'min' ),
controlMax = control.attr( 'max' ),
controlVal = control.val(),
controlThumbWidth = control.data( 'thumbwidth' );
var range = controlMax - controlMin;
var position = ( ( controlVal - controlMin ) / range ) * 100;
var positionOffset = Math.round( controlThumbWidth * position / 100 ) - ( controlThumbWidth / 2 );
var output = control.next( 'output' );
output
.css( 'left', 'calc(' + position + '% - ' + positionOffset + 'px)' )
.text( controlVal );
$( this ).attr( "data-modified", "1" );
$( "#next" ).removeAttr( "disabled" );
} );
我认为 IE11 在更改范围输入的范围时触发更改事件,而不是输入事件。
这是一个有趣的 comparison