我正在使用jQuery移动滑块输入。我的页面中可以有多个滑块,发生的事情是“更改”事件经常被触发,而不仅仅是实际输入值发生变化时。 这是我的代码:
<div class="questionContent ui-hide-label" data-role="fieldcontain">
<input type="range" class="slider" value="" min="1" max="5" data-highlight="true" name="slider" data-theme="b" />
</div>
$('input.slider').each(function() {
$(this)
.bind('change',function() {
console.log('changed')
})
})
我还为此创建了一个jsFiddle:http://jsfiddle.net/EAewE/
答案 0 :(得分:4)
问题是,只要点击鼠标,轻微移动等等,后台的jQuery就会改变绑定到滑块的输入值,因此“更改”实际上是因为它应该是触发的。
在jQuery Mobile中,您最好使用slidestop事件,该事件仅在滑块停止移动时触发。请注意,只有当用户使用实际滑块时,才会以编程方式更改输入值时触发此事件。