2009-05-20 64 views
14

我已经定义,像这样一个滑块:如何以编程方式设置jQuery UI滑块值并触发事件?

$("#slider").slider({ 
     orientation: "vertical", 
     range: "min", 
     min: 0, 
     max: totalRows, 
     value: totalRows, 
     slide: function(e, ui) { 
      scrollTheTable(ui.value, totalRows, visibleRows, $table); 
     } 
     }); 

当使用滑块,分配到幻灯片调用该函数没有问题。我有一个表可能包含或不包含具有SelectedItem类的行。我正在研究一种方法,该方法将基本上将该行“滚动”到页面加载的表顶部。

方法的肉看起来是这样的:

$("#slider").slider('value', $rows.length - index); 

此属性设置滑块值和滑块呈现正常,但我的幻灯片处理程序不会被调用做桌子上的工作。

我在这里错过了什么?

回答

22

看起来滑动参数只对鼠标事件有效。当以编程方式设置值时,更改事件被触发。所以改变我的设置让我得到了我想要的东西。

$("#slider").slider({ 
     orientation: "vertical", 
     range: "min", 
     min: 0, 
     max: totalRows, 
     value: totalRows, 
     slide: function(e, ui) { 
      scrollTheTable(ui.value, totalRows, visibleRows, $table); 
     }, 
     change: function(e, ui) { 
      scrollTheTable(ui.value, totalRows, visibleRows, $table); 
     } 
     }); 
+0

太棒了!我也有这个问题,这有助于。 – 2010-11-02 11:43:30

0

为什么你不设置这个值后再调用它?

scrollTheTable($rows.length - index, totalRows, visibleRows, $table); 
6

要初始化滑块,方法上面“幻灯:功能(...”和“变化:功能(”作品完美,但事后从外部例如,通过点击缩略图或任何改变滑块。其他分区有一个“上单击事件”,你可以使用:

$("#slider").slider('value', newvalue); 

对我来说,重要的提示是稍微不正确的代码行($行,PHP?):

$("#slider").slider('value', $rows.length - index); 
0

为在jquery的api中声明:使用s lider('value',X)将调用内置的更改函数。所以建议不要使用幻灯片回调。

0

我正在使用具有2个手柄的滑块。我能够用此代码以编程方式更新它:

$("#slider-range").slider('values',[57,180]).change(); 
相关问题