2012-02-02 7 views
8

से अलग मैं एक jQuery यूआई स्लाइडर है:jQuery यूआई स्लाइडर मूल्य रिलीज पर 'स्लाइड' घटना से लौटे 'बदलें' मूल्य

$('div.slider').slider({ 
    range: true, 
    step: 250, 
    min: 1000, 
    max: 500000, 
    values: [1000,500000], 
    change: function(event, ui){ 
     console.log($(this).slider('values', 0)+','+$(this).slider('values', 1)); 
    }, 
    slide: function(event, ui){ 
     console.log($(this).slider('values', 0)+','+$(this).slider('values', 1)); 
    } 
}); 

कुछ अजीब कारण के लिए, जब स्लाइडर को रिहा (mouseup) मूल्य जो कुछ भी था उससे थोड़ा बदलता है। स्लाइड इवेंट परिवर्तन घटना के मुकाबले कुछ अलग कर रहा है। किसी के पास कोई विचार है कि इसका कारण क्या हो सकता है और मैं इसे कैसे हल कर सकता हूं?

मैं परिवर्तन घटना के लिए कॉलबैक में एक बहुत गहन ऑपरेशन करने जा रहा हूं (जिसका अर्थ है कि मैं केवल sldie का उपयोग नहीं कर सकता), लेकिन स्लाइडर लाइव के मानों को दिखाने की भी आवश्यकता है, इसलिए मैं इसका उपयोग नहीं कर सकता सिर्फ एक या दूसरे।

यहाँ कार्रवाई में इस विषमता के साथ एक बेला है: http://jsfiddle.net/5W6Zh/

अग्रिम धन्यवाद

+1

ऐसा लगता है कि जब आप हड़पने/स्लाइडर स्लाइड लग रहा है के लिए तैयार हैं, यह बटन के केंद्र से मूल्य लेता है, लेकिन जब आप चलो, यह बाएं किनारे से मूल्य लेता है। साथ ही, ट्रैक पर क्लिक करने से कभी भी इस प्रभाव का उत्पादन नहीं होता है, इसलिए मैं सोचने के इच्छुक हूं कि बटन के पीछे कोड ड्रैग/रिलीज – sottenad

उत्तर

12

हम आज रात (और कल रात, और पिछले कुछ महीनों से) में भाग गए। हमने इसे ठीक करने के लिए क्या किया था $ ("# स्लाइडर") के बजाय ui.value और ui.values ​​[0] का उपयोग किया गया था। स्लाइडर ('मान', 0)।

उपयोग करें:

change: function(event, ui) { 
    $('.values').text($(this).slider('values', 0) + ',' + $(this).slider('values', 1)); 
} 

मैं अपने jsfiddle काँटेदार और बना यह काम: http://jsfiddle.net/danhixon/9JdhU/1/

ईमानदारी से मुझे नहीं लगता कि मैंने पाया है |

change: function(event, ui) { 
    $('.values').text(ui.values[0] + ',' + ui.values[1]); 
} 
बजाय

आपके प्रश्न के बिना समाधान और jsfiddle - मैं इसे jquery-ui डेमो से तुलना करता रहा जब तक कि मुझे यह अंतर नहीं मिला।

0

आपका मिनट, अधिकतम और कदम मूल्यों थोड़ा अजीब लग रही है, लेकिन मैं आपको बस हो गया उन्हें मिश्रित लगता है।

मैंने पाया कि स्लाइडर 1 से बहुत छोटे चरणों के साथ बहुत अच्छी तरह से काम नहीं करता है, इसलिए मैं केवल पूर्णांक का उपयोग करने के लिए बदल गया और बाद में विभाजित किया। तब से कभी भी कोई समस्या नहीं थी।

+1

के लिए अलग-अलग संदर्भ बिंदुओं का उपयोग कर रहा है, मैंने ऊपर दिए गए मानों में बदल दिया है और दुर्भाग्यवश मुझे अभी भी यह अजीबता मिल रही है । :/ – wyqydsyq

2

अधिक सटीक मूल्य प्राप्त करने के लिए स्लाइड हैंडलर में ui.value का उपयोग करें।

13

मुझे एक समाधान मिला! हमेशा एक स्लाइड घटना पर ऐसा करते हैं:

$(this).slider('value', ui.value); 

और तुम

+1

यही वह है! मैं आपको प्यार करता हूँ दोस्त! –

+0

मेरा स्लाइडर केवल '[ऑब्जेक्ट ऑब्जेक्ट]' लौटा रहा है। – nipponese

+2

सही! इस वजह से आज मेरे डेस्क पर मेरे सिर पर टक्कर लगी है .. मुझे यह एक साल देर से पता है, लेकिन @ निप्पोनिया, आपको '[ऑब्जेक्ट ऑब्जेक्ट] 'मिल रहा है क्योंकि यह एक रेंज स्लाइडर है, कोशिश करें:' $ (यह)। स्लाइडर ('मूल्य', ui.values ​​[0]); ' – kingkode

संबंधित मुद्दे