2012-09-21 18 views
5

जब कोई फॉर्म तत्व फोकस दिया जाता है तो मैं एक पाद लेख को छिपाने की कोशिश कर रहा हूं। मैं एक पाद लेख भी दिखाना चाहता हूं जब एक फॉर्म तत्व फोकस खो देता है, जिसे धुंधला ईवेंट संभालना चाहिए। मुझे एक jQuery मोबाइल selectmenu फॉर्म तत्व पर आग लगाने के लिए फोकस या धुंधला घटना नहीं मिल सकती है।jQuery मोबाइल selectmenu फोकस और धुंधला घटना आग नहीं होगी

यहाँ मेरी फार्म तत्वों में से एक का एक उदाहरण है -

<select id="radiology-study-provider" class="selectList"></select> 

यहाँ jQuery कोड है कि ध्यान देने पर मेरे पाद लेख छिपाने के लिए और कलंक पर यह दिखाने के लिए माना जाता है है (यह डोम के अंदर तैयार है) -

$('.selectList').change(function(){ 
     console.log("the change event is firing"); 
    }); 
    $('.selectList').focus(function(){ 
     $('div:jqmData(role="footer")').hide(); // hide the footer 
    }); 
    $('.selectList').blur(function(){ 
     $('div:jqmData(role="footer")').show(); // show the footer 
    }); 

यह अजीब बात है कि परिवर्तन घटना हैंडलर आग लगती है लेकिन फोकस और धुंध नहीं होगा।

मैं नीचे इस की कोशिश की है और यह काम नहीं करेगा -

$('.selectList').on('focus', function(){ 
     $('div:jqmData(role="footer")').hide(); // hide the footer 
    }); 
    $('.selectList').on('blur', function(){ 
     $('div:jqmData(role="footer")').show(); // show the footer 
    }); 

मैं भी करने की कोशिश की इस -

$('.selectList').bind("focus", function(event, ui) { 
     $('div:jqmData(role="footer")').hide(); // hide the footer 
    }); 
    $('.selectList').bind("blur", function(event, ui) { 
     $('div:jqmData(role="footer")').hide(); // hide the footer 
    }); 

मैं भी Focusin() और focusout() कोई भाग्य के साथ घटनाओं की कोशिश की या तो। मैंने दर्जनों चयनकर्ताओं की कोशिश की (div.ui-select उनमें से एक था)। मुझे नहीं लगता कि यह चयनकर्ता के साथ एक मुद्दा है जिसका मैं उपयोग कर रहा हूं।

मैं jQuery मोबाइल 1.1.0 और jQuery 1.7.1 का उपयोग कर रहा हूं - मैंने jQuery मोबाइल selectmenu दस्तावेज़ों को http://jquerymobile.com/test/docs/forms/selects/events.html पर चेक किया है, Google से बात की है, यहां खोज की है, और यह समस्या नहीं मिल सकती है।

+0

अरे दोस्त, क्या आपकी परिवर्तन विधि '$ ('। SelectList') है। कम से कम काम करें? – Littm

+0

हां, परिवर्तन घटना आग लगती है। – Ross

उत्तर

4

यह मेरे लिए काम करना समाप्त हो गया है।

document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    document.addEventListener("hidekeyboard", onKeyboardHide, false); 
    document.addEventListener("showkeyboard", onKeyboardShow, false); 

} 

function onKeyboardHide() { 
    $('div:jqmData(role="footer")').show(); // show the footer 
} 

function onKeyboardShow() { 
    $('div:jqmData(role="footer")').hide(); // hide the footer 
} 

मैं ढेर पर यहां इस में आए - Show hide keyboard is not working propery in android phonegap और पाया है उन 2 घटनाओं आप के लिए सुन सकते हैं देखते हैं।

1

फोकस घटना बाहर टिप्पणी कोशिश और कोशिश .. कभी-कभी जब फोकस ईवेंट सक्रिय इसे कई बार निकाल दिया जाता है जिसकी वजह से आप कोड है कि निष्पादित किया जाता है नहीं दिख रहा है ...

$('.selectList').change(function(){ 
     alert("the change event is firing"); 
    }); 

// $('.selectList').focus(function(){ 
// $('div:jqmData(role="footer")').hide(); // hide the footer 
// alert("Focus event is firing"); 
// }); 

    $('.selectList').blur(function(){ 
     //$('div:jqmData(role="footer")').show(); // show the footer 
     alert("Blur event is firing"); 
    });​ 

मैंने टिप्पणी की बाहर फोकस घटना और अन्य दो घटनाओं आग .. टिप्पणियां निकालें लगते हैं और आप ध्यान केंद्रित घटना हो रही है कई बार निकाल दिया ..

चेक FIDDLE

+0

आपके सुझाव के लिए धन्यवाद। दुर्भाग्य से धुंधला घटना आग नहीं होगी। मुझे किसी भी तरह से पता होना चाहिए कि एंड्रॉइड कीबोर्ड कब मौजूद है और फॉर्म तत्वों पर फ़ोकस और धुंध ईवेंट हैंडलर द्वारा यह संभव है। – Ross

1

यह मेरे लिए काम किया निम्नलिखित ई का उपयोग करके देख XAMPLE:

जे एस:

<script> 
    document.addEventListener("deviceready", function(){}, false); 

    $(function() { 
     $('.selectList').change(function(){ 
      console.log("the change event is firing");          
     }); 

     $('.selectList').focus(function(){ 
      console.log("FOCUS"); 
      $('#my_footer').hide(); // hide the footer 
     }); 

     $('.selectList').focusout(function(){ 
      console.log("FOCUS OUT"); 
      $('#my_footer').show(); // show the footer 
     }); 
    }); 
</script> 

जहां #my_footer मेरी पाद लेख के आईडी (नीचे HTML जाँच) है।

HTML:

<body> 
    <div data-role="page"> 
     <div data-role="content"> 

      <select id="radiology-study-provider" class="selectList"> 
       <option value="1">A</option> 
       <option value="2">B</option> 
       <option value="3">C</option> 
      </select> 

     </div> 
    </div> 
</body> 

आप इस उदाहरण को एक कोशिश है और देखो अगर यह काम करता है आप के लिए संभोग हो सकता है: एस

आशा इस मदद करता है। मुझे अपने परिणामों के बारे में बताएं।

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद। एक बार फिर, केवल परिवर्तन घटना आग लगाना चाहता था। मैंने हालांकि एक समाधान निकाला, मैं पोस्ट करने जा रहा हूं जो मेरे लिए काम करता है। – Ross

+0

आपका स्वागत दोस्त :)। मुझे यह देखने में उत्सुकता है कि समस्या क्या थी: एस ... मैं आपके समाधान की प्रतीक्षा करूँगा: पी – Littm

+0

मुझे स्वयं जवाब देने के लिए 5 और घंटे इंतजार करना होगा क्योंकि मेरे पास 10 से कम प्रतिष्ठा है। मैं इसे कल यहां पोस्ट करूंगा। फिर से धन्यवाद। – Ross