【发布时间】:2011-11-16 07:41:46
【问题描述】:
我想知道是否有人有一个带有 knockoutjs 的 JQM 滑块的工作示例。我有两个问题:
1) 将值绑定到可观察对象 - 我可以最初绑定它,即设置滑块的“值”,但这不会在拖动时更新底层可观察对象 - 我认为这与 JQM 放置元素有关表示它的输入?
2) 更改 min、max、value 属性时刷新样式。
这是我所拥有的一个子集,currentItems 根据选择而变化:
workloadViewModel.filterValues = ko.dependentObservable(function () {
var tmp = {};
var itms = this.currentItems();
if (itms.length == 0) return;
tmp.max = itms[0].val;
tmp.min = itms[itms.length - 1].val;
tmp.minRange = this.minRange();
return tmp;
}, workloadViewModel);
ko.bindingHandlers.jqmRefreshSlider = {
update: function (element, valueAccessor) {
ko.utils.unwrapObservable(valueAccessor()); //just to create a dependency
try {
$("input[type=range]").slider("refresh");
} catch (error) {
trace("error refreshing slider");
}
}
};
<div id="filters" data-bind="template: {name: 'filterTemplate', data: filterValues}, jqmRefreshSlider: filterValues"></div>
<script id='filterTemplate' type='text/html'>
<p>min: ${minRange}</p>
<p>min: ${min}</p>
<p>max: ${max}</p>
<div>
<input type="range" name="slider_min" id="slider_min" value="${minRange}" min="${min}" max="${max}" />
</div>
</script>
非常感谢您能给我的任何帮助。
J
【问题讨论】:
-
我想知道,通过“一半的问题”,您是否指的是绑定不是所有滑块选项,如最小值和最大值。如果是这种情况,请告诉我您是否找到了涵盖所有问题的解决方案。
标签: jquery mobile slider knockout.js