मुझे एक स्लाइडर मिला जो मेरे संगीत प्लेयर में टाइम-लाइन के रूप में उपयोग किया जाता है। न्यूनतम मान 0 है और अधिकतम vlaue गीत लंबाई (सेकंड में) है। प्रत्येक दूसरा (मैं इसे टाइमर के साथ करता हूं), स्लाइडर चलता है और मान वर्तमान समय पर सेट होता है। इस कोड को लाइन है कि तरह लग रहा है:jQuery स्लाइडर "परिवर्तन" घटना: मैं यह कैसे निर्धारित करूं कि इसे किसने बुलाया?
$("#sliderTime").slider("option", "value", document.sound.controls.currentPosition);
उपयोगकर्ता स्लाइड/स्लाइडर क्लिक करें और गीत में एक और बात करने के लिए कूद करने में सक्षम है, इस समारोह 'प्ले (startPlayFromHere)' फायरिंग कर रहा है। ऐसा नहीं है कि तरह लग रहा है:
$("#sliderTime").slider({
...
change: function (event, ui) { play(ui.value) },
});
समस्या यह है कि दोनों टाइमर और उपयोगकर्ता में कोड लाइन स्लाइडर का एक ही 'परिवर्तन' घटना बुला रहे हैं, और उपयोगकर्ता स्लाइडर स्थानांतरित नहीं कर सकते है।
तो मेरा सवाल यह है कि मैं कैसे निर्धारित कर सकता हूं कि उपयोगकर्ता ने परिवर्तन ईवेंट कहा है या नहीं (इसका मतलब है कि यह टाइमर था)?
मुझे उम्मीद है कि यह पर्याप्त स्पष्ट है, धन्यवाद!
धन्यवाद! अब मुझे एक और मुद्दा मिला: जब उपयोगकर्ता स्लाइड करने का प्रयास करता है, टाइमर अभी भी स्लाइडर को काम करता है और स्लाइड करता है। तो कभी-कभी स्लाइडर मूल स्थिति पर वापस जाता है और उपयोगकर्ताओं के कॉल को अनदेखा करता है। – eviabs
इसे लिखने का कोई समय नहीं है लेकिन आप एक फ्लैग बढ़ाने के लिए 'स्टार्ट' हैंडलर (देखें [दस्तावेज़ीकरण] (http://jqueryui.com/demos/slider/)) संलग्न कर सकते हैं (टाइमर कोड के इसी समायोजन के साथ)) स्लाइडर का टाइमर नियंत्रण। 'चेंज' हैंडलर में ध्वज को दोबारा कम करें। (वैकल्पिक रूप से, टाइमर को रोकें, फिर इसे पुनरारंभ करें)। –