0

スライダーを使用して値を POST としてサーバーに送信していますが、マウスを離したときにのみ更新されます。スライダーがドラッグされているため、マウスダウン中に繰り返し POST する方法はありますか?

function changeBuzz(event, ui) { 
    $('#indicator').text(ui.value); 
    $.post('/buzz', { buzz: ui.value } ); 
}         

$(document).ready(function(){ 
    $('#slider').slider({min: 0, max:8000, change:changeBuzz}); 
});
4

2 に答える 2

0

このイベントをチェックしてください#event-slide

スライド中にマウスを動かすたびにトリガーされます。イベントで ui.value として提供される値は、ハンドルが現在の移動の結果として持つ値を表します。イベントをキャンセルすると、ハンドルは移動できなくなり、ハンドルは以前の値を保持し続けます。

ただし、マウスを動かすたびに ajax リクエストが繰り返されることに注意してください。マウスなどを動かしている間は、ある程度の間隔を空けてください...そしてchange、最終的な正しい値を保証するためにイベントを維持してください。

于 2012-12-09T03:54:06.567 に答える
0

スライドをキャプチャするには、スライド中にマウスを動かすたびにトリガーされる組み込みのスライド イベントを使用します。

$('#slider').slider({
  min: 0, 
  max:8000, 
  slide: changeBuzz
});

mousedown イベントもキャプチャしたい場合は、プラグインの外側で標準の jquery ハンドラーを使用するだけです (以下の未テストのコード)。ただし、実際にはUIだけである機能に必要なオブジェクトを手動で作成する必要があります

$('#slider').mouseDown(function(e){
    var event = {}
    var ui = $('#slider') // this might not be correct but you can find out what you need here
    changeBuzz(event,ui)
}

これで、少なくともある程度はそこにたどり着くはずです

于 2012-12-09T04:46:34.290 に答える