IE11 使用onChange而不是onInput for <input type='range'>
元素。
不会调用这两个在IE11中反应。
onInput
可以在FF、Chrome和Edge上工作,所以没关系。
沿着兔子洞往下走,导致这里和这里,它们建议使用onMouseUp
或onClick
,但我也没有做到这一点。
我尝试过各种不同的听众组合,但都没有效果。我甚至尝试过这 (当然,这也不起作用)。有人有办法解决这个问题吗?
发布于 2016-08-19 20:59:44
经过一番深入研究,我决定使用反应范围,因为它是轻量级的、简单的、工作的。
render()
在其来源中展示了它是如何做到的:
render: function() {
var props = _extends({}, this.props, {
defaultValue: this.props.value,
onClick: this.onRangeClick,
onKeyDown: this.onRangeKeyDown,
onMouseMove: this.onRangeChange,
onChange: function() {},
ref: this.setRangeRef
});
delete props.value;
return React.createElement(
'input',
props
);
}
更新
看来这将在React 16:https://github.com/facebook/react/issues/554#issuecomment-271579096中得到修正。
如果你看看上面的历史,你会发现这个问题在5746之前已经结束了。如果您打开此PR,您将看到它的里程碑被设置为16。 所以修复将在16,我们不能把它放在15.x,因为它带来了一个打破行为的变化。 我不知道是否有可能把它移到15.x。@jquense和nhunzaker可能会回答这个问题。
https://stackoverflow.com/questions/39047171
复制相似问题