2010-01-20 49 views
5

Tôi có một thanh trượt jQuery được khởi tạo và sau đó tự động đặt các giá trị tối đa tối thiểu nằm trên nội dung của yêu cầu json. Các bước thậm chí 100, tối thiểu một phút được tính lại cho cả trăm, hầu hết các trường hợp ở đâu đó giữa 300 và 4800.Vấn đề thanh trượt jQuery đạt đến giá trị nhỏ nhất và tối đa

Giá trị và cài đặt thanh trượt là tốt, nhưng khi tôi di chuyển tay cầm, tôi không thể lấy tất cả cách để kết thúc, nó dừng một vài bước từ giá trị tối thiểu/tối đa. Tại sao vậy?

Tôi đã thử tất cả mọi thứ, không có gì hiệu quả. Tôi đã kết thúc thêm 200 ở giá trị cao nhất và trừ 200 ở mức thấp hơn và bù lại, nhưng đó là hack và không phải là giải pháp.

+0

Có phải là tay cầm đã đạt được vị trí tối đa, nhưng giá trị được báo cáo không ở mức tối đa (trái ngược với tay cầm thậm chí không thể mang đến cùng)? Và nó có tệ hơn khi bạn trượt nhanh không? Chỉ cần cố gắng xác định xem đây có phải là vấn đề tương tự mà tôi đang gặp phải hay không. Chưa có giải pháp nào ... nhưng sẽ cho bạn biết. – Ben

Trả lời

6

Trong cuộc gọi lại 'trang trình bày' của bạn, hãy thử sử dụng ui.value để nhận giá trị. Điều này giải quyết được vấn đề của tôi. Xem jQuery UI slider - can't slide to 0 ngoại trừ không đi theo câu trả lời, đi theo nhận xét cho câu trả lời.

0

Tôi nhận thấy câu hỏi này là 5 tuổi nhưng tôi mới gặp phải sự cố tương tự ngày hôm nay. Tôi đã có một thanh trượt ngắn với nhiều bước, nó đã đi từ 0 đến 1 với các bước của 0,01. Thanh trượt sẽ chạm vào các đầu của thanh trượt trước khi nhấn các bước ngoài cùng, vì vậy tôi chỉ có thể xuống tới 0,02 và lên đến 0,98.

Nếu có ai đó gặp phải vấn đề này, chỉ cần làm cho giá trị tối thiểu và tối đa của bạn đi xa hơn một chút so với giá trị và điều chỉnh giá trị của bạn nếu người dùng trượt qua chúng.

('.slider-container').slider({ 
       min: -0.02, max: 1.02, step: 0.01, slide: function() { 

        // make values below 0 and over 1 snap back 
        if ($(this).slider('value') < 0) { 
         $(this).slider('value', 0); 
        } 

        if ($(this).slider('value') > 1) { 
         $(this).slider('value', 1); 
        } 
}); 
0

Tôi đã có một vấn đề tương tự với các thiết lập này

min: 35000.74 
max: 150000 
step: 1 //(default, did not actually change it) 

và thanh trượt chỉ đi xa như 149.999,74. Tất nhiên, trong trường hợp của tôi, vấn đề là do bước 1 và phạm vi không phân chia đồng đều thành các bước này, một trong các giá trị kết thúc không bao giờ có thể đạt được bằng thanh trượt.

Thay đổi phút thành 35000 (Math.floor()) và mọi thứ hoạt động như một sự quyến rũ.

Các vấn đề liên quan