2009-03-07 12 views
12

jQuery 1.3.2/jQueryUI 1,7/SliderjQuery UI trượt - không thể trượt để 0

$("#slider").slider({ 
    range: "min", 
    min: 0, 
    max: 40, 
    value: 0, 
    slide: function(event, ui) { 
     CalculateOrder(event, ui); 
    } 
}); 

nó bắt đầu ra tốt, nhưng sau khi tôi di chuyển thanh trượt Tôi không thể có được nó trở lại 0 , ui.Value là 1 khi tôi trượt tất cả các con đường sang bên trái.

Tôi đã thử đặt

min:-1 

này đặt ui.Value đến -1 khi tôi trượt nó là -1, nhưng khi tôi đang ở 0 các ui.Value vẫn là 1.

Bất kỳ ý tưởng nào?

Trả lời

19

Điều bạn muốn là lấy giá trị khi thanh trượt dừng lại, không phải trong trang chiếu. Từ kinh nghiệm của tôi, sự kiện slide sẽ giúp bạn có được vị trí trước đó của thanh trượt. Dừng sẽ cho bạn giá trị của thanh trượt nơi người dùng di chuyển nó đến.

$("#slider").slider({ 
    range: 'min', 
    min: 0, 
    max: 40, 
    value: 1, 
    step: 10, 
    slide : function(event, ui){ 
     console.log("previous value:"+ $(this).slider('option', 'value')); 
    }, 
    stop: function(event, ui){ 
     console.log("Current value:"+ $(this).slider('option', 'value')); 
    } 
}); 
+0

thanx, stop: did it !!! –

+20

Trên thực tế, có một sự khác biệt tinh tế trong tất cả điều này (tôi chỉ chạy vào bản thân mình). Bạn nên sử dụng "ui.value" để lấy giá trị trong trình xử lý sự kiện trình chiếu của mình. Điều đó sẽ cho bạn giá trị * hiện tại *. Bạn sẽ nhận được giá trị trước đó nếu bạn tìm nạp nó bằng cách yêu cầu thanh trượt cho giá trị xử lý của nó (ví dụ: .slider ('value') hoặc .slider ('option', 'value'), v.v.). Điều này quan trọng nếu bạn đang cố gắng tự động cập nhật nhãn trong khi người dùng đang trượt tay cầm xung quanh. Tóm tắt: nếu bạn sử dụng ui.value để lấy giá trị trong trình xử lý sự kiện trang trình bày, bạn sẽ không cần sử dụng trình xử lý sự kiện dừng. – chrisrbailey

+1

Bình luận của Chris đã đúng về số tiền. Nếu bạn sử dụng ui.value trong trình xử lý "trang trình bày", bạn có thể lấy giá trị hiện tại của thanh trượt, trái ngược với giá trị trước đó. –