4

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/

4

1 に答える 1

3

問題は、バックグラウンドのjQueryが、マウスがクリックされたり、わずかに移動されたりするたびに、スライダーに関連付けられた入力の値を変更しているため、「変更」が実際にトリガーされることが多いためです。

jQuery Mobileでは、スライダーの移動が停止したときにのみトリガーされるslidestopイベントを使用することをお勧めします。このイベントは、入力の値がプログラムで変更された場合には発生せず、実際のスライダーがユーザーによって操作された場合にのみ発生することに注意してください。

于 2013-03-25T01:24:41.263 に答える