2009-05-20 105 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(); 
相關問題