【问题标题】:Knockout.js bind slider range inputKnockout.js 绑定滑块范围输入
【发布时间】:2015-12-25 19:54:14
【问题描述】:

我正在尝试将Input Range Object 与 Knockout.js 绑定。值绑定似乎运作良好,但我找不到在拖动滑块时更新 observable 的方法。仅当我释放鼠标时才会更新 observable,因为我正在创建音量滑块,所以体验很差。

我已经尝试了每个valueUpdate 选项,但没有任何结果。它们似乎只用于文本输入。

var ViewModel = function() { 
    this.rangeValue = ko.observable(50);
};
 
ko.applyBindings(new ViewModel()); // This makes Knockout get to work
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<input type="text" data-bind="value: rangeValue"/>
<input type="range" data-bind="value: rangeValue, valueUpdate: 'change'"/>

【问题讨论】:

  • @RoyJ 所以,你知道将 valueUpdate 设置为“输入”或类似的方法吗?
  • @RoyJ 没关系,valueUpdate: 'input' 似乎存在,即使没有记录。感谢您的提示!

标签: knockout.js data-binding slider


【解决方案1】:

this question所述,拖动时需要监听oninput事件获取新值。

即使没有记录,Google 的快速搜索也会导致 Knockout.js supporting valueUpdate: 'input'

var ViewModel = function() { 
    this.rangeValue = ko.observable(50);
};
 
ko.applyBindings(new ViewModel()); // This makes Knockout get to work
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<input type="text" data-bind="value: rangeValue"/>
<input type="range" data-bind="value: rangeValue, valueUpdate: 'input'"/>

【讨论】:

猜你喜欢
  • 2021-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 2013-05-05
相关资源
最近更新 更多