【发布时间】:2013-04-03 18:27:55
【问题描述】:
我有一个 jQuery UI 滑块。当用户使用滑块时,滑块会更新滑块的 div 标签中的一个 attr 变量
$(".slider").each(function() {
var value = parseInt($(this).attr('data-init-value'), 10);
var amin = parseInt($(this).attr('data-min'), 10);
var amax = parseInt($(this).attr('data-max'), 10);
console.log(value, " ", amin, " ", amax)
$(this).empty().slider({
value : value,
min : amin,
max : amax,
range : "min",
animate : true,
slide : function(event, ui) {
$(this).attr('data-value', ui.value);
}
});
});
html中的示例div标签:
<div class="slider" data-min="200" data-max="600" data-init-value="300" data-bind="attr: { 'data-value': someValue }"></div>
当滑块更改时,<div> 中的数据值会更新,但 js 变量不会更改。 (在其他琐碎的绑定情况下——比如文本:——它可以工作。)
如何绑定这个动作?
【问题讨论】:
-
你可以在设置完成后尝试触发 .change() 吗?所以
$(this).attr('data-value', ui.value).change();我知道.val("value")不会触发更改事件(这是淘汰赛所听的)所以我猜 attr() 也不会。 (或者您可以按照 Lasse 下面的建议进行操作,并更新淘汰变量)。
标签: javascript jquery-ui knockout.js