मैं sliderjQueryMobile में ईवेंट का परीक्षण कर रहा हूं और मुझे कुछ याद आना चाहिए।jQuery मोबाइल: स्लाइडर घटनाओं के साथ कैसे काम करें?
पेज कोड है:
<div data-role="fieldcontain">
<label for="slider">Input slider:</label>
<input type="range" name="slider" id="slider" value="0" min="0" max="100" />
</div>
और अगर मैं कार्य करें:
$("#slider").data("events");
मैं
blur, focus, keyup, remove
पाने के लिए उपयोगकर्ता रिलीज एक बार मूल्य प्राप्त मुझे क्या करना चाहते है स्लाइडर हैंडल
और
$("#slider").bind("keyup", function() { alert('here'); });
के रूप में KeyUp घटना के लिए एक हुक होने बिल्कुल कुछ भी नहीं है :(
मुझे कहना पड़ेगा कि मैं को गलत तरीके से मान लिया कि jquerymobile jQueryUI कंट्रोल्स का प्रयोग के रूप में यह मेरा पहला विचार था करता है, लेकिन अब घटनाओं में गहरी काम कर रहा हूं, मैं देख सकता हूं कि यह मामला नहीं है, केवल सीएसएस डिजाइन के मामले में।
मैं क्या कर सकता हूं?
jQuery स्लाइडर मोबाइल source codeGit पर पाया जा सकता है, तो यह किसी को भी साथ ही साथ एक परीक्षण पृष्ठJSBin
मैं समझता हूँ के रूप में पाया जा सकता है में मदद करता है, #slider
साथ पाठ बॉक्स है मान, इसलिए मुझे स्लाइडर हैंडल में हुक करने की आवश्यकता होगी क्योंकि इस स्लाइडर के लिए जेनरेट कोड है:
<div data-role="fieldcontain" class="ui-field-contain ui-body ui-br">
<label for="slider" class="ui-input-text ui-slider" id="slider-label">Input slider:</label>
<input data-type="range" max="100" min="0" value="0" id="slider" name="slider" class="ui-input-text ui-body-null ui-corner-all ui-shadow-inset ui-body-c ui-slider-input" />
<div role="application" class="ui-slider ui-btn-down-c ui-btn-corner-all">
<a class="ui-slider-handle ui-btn ui-btn-corner-all ui-shadow ui-btn-up-c" href="#" data-theme="c" role="slider" aria-valuemin="0" aria-valuemax="100" aria-valuenow="54" aria-valuetext="54" title="54" aria-labelledby="slider-label" style="left: 54%;">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text"></span>
</span>
</a>
</div>
</div>
और हैंडलर लंगर में घटनाओं की जाँच मैं केवल click
घटना
$("#slider").next().find("a").data("events");
फिक्स
इवान जवाब से, हम सिर्फ जरूरत है:
<div data-role="fieldcontain">
<label for="slider">Input slider:</label>
<input type="range" name="slider" id="slider" value="0" min="0" max="100" />
</div>
और उसके बाद
$(document).bind("pagecreate", function(event, ui) {
$('#slider').siblings('.ui-slider').bind('tap', function(event, ui){ makeAjaxChange($(this).siblings('input')); });
$('#slider').siblings('.ui-slider a').bind('taphold', function(event, ui){ makeAjaxChange($(this).parent().siblings('input'));
});
function makeAjaxChange(elem) {
alert(elem.val());
}
धन्यवाद इवान के लिए इवान।
आप एक सप्ताह पहले मैं के रूप में एक ही समस्या वास्तव में पाया। जेक्यूमोबाइल ने शपथ ली कि वे jQuery यूआई के शीर्ष पर काम करते हैं, यह मामला नहीं है। बाहर निकलें, jQuery मोबाइल विजेट सिर्फ यूआई विगेट्स की तरह दिखते हैं, लेकिन विशिष्ट हुक और गुणों जैसे नियंत्रण के लिए इंटरफ़ेस प्रदान करने की एक ही यूआई अवधारणा का पालन न करें विशिष्ट एचटीएमएल विशेषताओं जो आईएमएचओ उपयोगी और संभावित रूप से हानिकारक एचटीएमएल मार्कअप से बहुत दूर है। –
इवान के समान समाधान: [jquery forum] (http://forum.jquery.com/topic/how-to-execute-javascript-code-when-finger-is-lifted-from-a-slider) यही है केवल मेरे लिए काम किया। – user1127860