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

要捕获滑动,请使用在滑动期间每次鼠标移动都会触发的内置滑动事件。

$('#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 回答
0

请检查此事件#event-slide

在滑动期间每次鼠标移动时触发。事件中作为 ui.value 提供的值表示作为当前移动结果的句柄将具有的值。取消事件将阻止句柄移动,并且句柄将继续具有其先前的值。

但要注意每次鼠标移动时重复的 ajax 请求。确保在移动鼠标或类似的东西时创建一些间隔......并保持change事件以保证最终的正确值。

于 2012-12-09T03:54:06.567 回答