2009-05-20 14 views
14

Bir kaydırıcı şöyle tanımlanmıştır:jQuery UI Slider değerini program aracılığıyla nasıl ayarlayabilirim?

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

sürgüsünü kullanırken, slayt atanmış işlev hiçbir sorun çağrılır. SelectedItem sınıfına sahip bir satır içeren veya içermeyen bir tablom var. Temel olarak sayfa yükündeki tablonun üst kısmına bu satırı "kaydırmak" için bir yöntem üzerinde çalışıyorum.

yöntemin et şuna benzer:

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

Bu özellik kaydırıcı değeri belirler ve sürgü düzgün bir şekilde oluşturulup, ama benim slayt işleyicisi masada işi yapmak için asla denir.

Burada nelerin eksik?

cevap

22

Slayt parametresinin yalnızca fare olayları için geçerli olduğu anlaşılıyor. Değeri programatik olarak ayarlarken değişiklik olayı başlatılır. Bu yüzden kurulumumu değiştirdiğim şey istediğimi elde etti. ": Function (... slayt" ve

$("#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

! Bu problemi de yaşadım ve bu yardımcı oldu. –

+1

Bu, kaydırıcı fare ile değiştirildiğinde iki kez kaydırma yapılmaz mı? Yalnızca değişiklik olay işleyicisini kullanmak benim için çalışır. – xr280xr

0

Değeri ayarladıktan sonra neden bunu aramıyorsunuz?

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

yukarıda, yöntem sürgüsünü başlatmak için "değişim: function (" mükemmel çalışan bir küçük resim veya herhangi tıklayarak dışında örneğin Gol kaydırıcıyı değiştirmek için Ama. bir "on-click-olay" ile diğer div kullanabilirsiniz:

benim için vazgeçilmez ipucu
$("#slider").slider('value', newvalue); 

oldu biraz yanlış kod satırı ($ satırlar, PHP?):

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

olarak jquery ifadesinde belirtilen: s kullanarak lider ('value', X) değişim işlevinde yerleşik olarak adlandırılır. Bu yüzden bir öneri slayt geri çağırma kullanmamaktır.

0

2 kulplu bir sürgü kullanıyorum. Ben programlı bu kod ile güncellemek başardı: Büyük

$("#slider-range").slider('values',[57,180]).change(); 
İlgili konular