首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery UI滑块-从发布时的“slide”事件返回的值与“change”值不同

jQuery UI滑块-从发布时的“slide”事件返回的值与“change”值不同
EN

Stack Overflow用户
提问于 2012-02-03 06:47:17
回答 4查看 17.3K关注 0票数 9

我有一个jQuery UI滑块:

代码语言:javascript
运行
复制
$('div.slider').slider({
    range: true,
    step: 250,
    min: 1000,
    max: 500000,
    values: [1000,500000],
    change: function(event, ui){
        console.log($(this).slider('values', 0)+','+$(this).slider('values', 1));
    },
    slide: function(event, ui){
        console.log($(this).slider('values', 0)+','+$(this).slider('values', 1));
    }
});

出于某种奇怪的原因,当释放滑块(鼠标向上)时,该值与原来的值略有不同。幻灯片事件返回的内容与更改事件返回的内容不同。有谁知道这可能是什么原因,以及我如何解决它?

我将在change事件的回调中有一个相当激烈的操作(这意味着我不能只使用sldie),但也需要实时显示滑块的值,所以我不能只使用其中的一个。

这里有一个小玩意儿:http://jsfiddle.net/5W6Zh/

提前感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-17 17:44:49

我们今晚(和昨晚,以及过去几个月)遇到了这个问题。我们解决这个问题的方法是使用ui.value和ui.values代替$("#slider").slider('values',0)。

使用以下命令:

代码语言:javascript
运行
复制
change: function(event, ui) {
  $('.values').text(ui.values[0] + ',' + ui.values[1]);
}

而不是:

代码语言:javascript
运行
复制
change: function(event, ui) {
  $('.values').text($(this).slider('values', 0) + ',' + $(this).slider('values', 1));
}

我派生了你的jsfiddle并让它工作:http://jsfiddle.net/danhixon/9JdhU/1/

老实说,如果没有你的问题和jsfiddle,我想我是找不到解决方案的--我一直在把它与jquery-ui演示程序进行比较,直到我发现了这个区别。

票数 13
EN

Stack Overflow用户

发布于 2012-09-07 20:39:17

我找到了一个解决方案!在幻灯片事件中始终执行此操作:

代码语言:javascript
运行
复制
$(this).slider('value', ui.value);

你就可以走了

票数 13
EN

Stack Overflow用户

发布于 2012-02-27 01:47:17

在滑动处理程序中使用ui.value可获得更精确的值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9121160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档