2010-11-24 24 views
9

के साथ गतिशील रूप से फ्लिप टॉगल का मूल्य बदलें मैं jQuery मोबाइल के साथ काम कर रहा हूं, और मैं कुकी में कुछ सेटिंग्स को सहेजता हूं। जब सेटिंग्स पृष्ठ को पुनः लोड किया जाता है, तो मैं कुकी को सभी मान सेट करने के लिए पढ़ता हूं। मुझे flip toggle switch सेट करने में समस्या हो रही है। अधिकांश तत्वों को केवल keyup या changed ईवेंट ट्रिगर करना पड़ता है, लेकिन मुझे यकीन नहीं है कि फ्लिप टॉगल को चुनिंदा बॉक्स से अपना मूल्य कैसे प्राप्त होता है। कोई विचार?jQuery मोबाइल

उत्तर

1

मुझे लगता है कि आप सामान्य एचटीएमएल की तरह चयन में मूल्य निर्धारित कर सकते हैं और टॉगल स्विच फ्लिप स्वचालित रूप से उठाएंगे। अर्थात

<select name="slider" id="slider" data-role="slider"> 
    <option value="off">Off</option> 
    <option value="on" selected="selected">On</option> 
</select> 
+0

लेकिन वह कुकीज़ का उपयोग करता है, इसलिए यह जावास्क्रिप्ट के साथ लोड किए गए पृष्ठ पर हो रहा है। – naugtur

3

ऐसा लगता है कि यह टूटा हुआ है।

पृष्ठ पर जाएँ: http://jquerymobile.com/demos/1.0a2/#docs/forms/forms-switch.html और उपयोग फ़ायरबग कंसोल निम्नलिखित चलाने के लिए:

$('#slider2').val('on').trigger('keyup'); 

यह स्विच का हिस्सा "पर" की चौड़ाई बदलता है, लेकिन स्लाइडर को नहीं है।

तो जवाब है: JQM की रिहाई :)

बग यहाँ जारी के लिए प्रतीक्षा: https://github.com/jquery/jquery-mobile/issues/issue/676

0

$('#slider2').val('on') का उपयोग करना, मान बदलने के रूप में यह माना जाता है कि होगा। हालांकि, यह ui-btn-active जैसे option पर सीएसएस कक्षाएं नहीं जोड़ता है, न ही यह option से उस वर्ग को हटा देता है। यदि आप गतिशील रूप से option को बदलना चाहते हैं, तो आपको मैन्युअल रूप से उन हिस्सों का ख्याल रखना होगा (jQuery मोबाइल नहीं)।

$('#Switch2').val('on').slider("refresh"); 
24

आप स्विच का मूल्य बदल के बाद आप टॉगल करने के लिए एनीमेशन के लिए यह ताज़ा करने के लिए है मान सेट करें, बनाएं और रीफ्रेश करें। बाद में आपको स्लाइडर से जुड़ी कोई भी क्रिया करने के लिए स्लीडस्टॉप ईवेंट को ट्रिगर करने की आवश्यकता है। उदाहरण:

$('#mySlider').val('on').trigger('create').slider("refresh"); 
$('#mySlider').trigger('slidestop'); 

मैंने इसका परीक्षण jQuery मोबाइल वर्क पर किया है। 1.3.0

0

यह मेरे लिए काम करता है::

if (someCondition) { 
     $('#slider').val('off'); 
    } 
    else { 
     $('#slider').val('on'); 
    } 
    try { 
     $('#slider').slider("refresh"); 
    } 
    catch (err) { 
     console.log ("Error occurred refreshing slider (probabily first time!)"); 
    } 
1

प्राप्त करने के लिए यह करने के लिए है एक आसान तरीका है