2013-01-22 20 views
6

अगर मेरा पैनल खुली या बंद है की जाँच करने के कोशिश कर रहा हूँ खुला है।jQuery मोबाइल पैनल - जाँच अगर यह

मैं इस तरह की कोशिश की:

$(document).on('open', '.ui-panel', function(){ 
    console.log('open');  
}) 

लेकिन कुछ नहीं होता।

मैं कैसे jQ मोबाइल पैनल के लिए एक घटना श्रोता सेट कर सकते हैं?

ओपन कोई समस्या नहीं है, क्योंकि मैं बटन क्लिक करने के लिए .panel('open') जोड़ सकता हूं और फिर console.log(), लेकिन बंद के साथ क्या होगा? पैनल बंद हो जाएगा जब मैं बाहर क्लिक करूंगा, उस पल को कैसे पकड़ूं?

+1

आपको एक "जवाब" के बदले अधिलेखन के रूप में उत्तर पोस्ट किया जाना चाहिए था मूल सवाल अब इस सवाल का कोई मतलब नहीं है। – M4N

+0

कृपया अपना उत्तर उत्तर के रूप में पोस्ट करें। – ChrisF

+0

मुझे बहुत खेद है। अगर मुझे याद है कि मेरे अपने प्रश्न का उत्तर जोड़ने में समस्या थी। मैंने इसे अभी मरम्मत की। :) –

उत्तर

0

मुझे लगता है कि आप pagebeforehide या pagehide घटना कर सकते हैं।

jquerymobile घटना की जानकारी के लिए See here

0

मैं इस तरह का उपयोग करें:

if ($("#id").find("div").css("visibility") == "hidden") { 
    alert("Closed"); 
} else { 
    alert("Opened"); 
} 
+0

यह हमेशा काम नहीं करेगा क्योंकि कभी-कभी "दृश्यता" छिपी हुई नहीं है लेकिन "ओवरले" है। – Marc

4
$(document).bind('panelopen', function (e, data) { 
     $('body').css("overflow", "hidden"); 
    }); 

    $(document).bind('panelclose', function (e, data) { 
     $('body').css("overflow", "auto"); 
    }); 

आशा है कि यह मदद करता है ।

+0

यह मुझे ठीक काम करता है ...... बहुत धन्यवाद :))))) –

1

एक जांच के लिए अब जाँच मैं निम्नलिखित कोड का इस्तेमाल किया।

function isSideNavVisible() { 
    var sidenav = $("#sidenav"); 
    var sideNavHidden = sidenav.css("visibility") == "hidden" || sidenav.css("overflow-x") == "hidden" || sidenav.css("overflow-y") == "hidden"; 
    return !sideNavHidden; 
} 

आप मैं के रूप में स्वीकार जवाब में दिखाया घटनाओं के लिए बाध्य करने के लिए पसंद करेंगे कर सकते हैं।

0

सीएसएस JQM पैनल पर लागू होता है स्पष्ट रूप से अपने राज्य इंगित करता है। यहाँ एक बहुत ही सरल वेनिला जे एस समाधान है:

1 var document.getElementById("name-of-panel") = my_panel; 
2 my_panel.classList.contains("ui-panel-open"); 

पंक्ति 2 रिटर्न "सही" यदि यह खुला है, "गलत" अगर यह नहीं है। यह पता लगाने के लिए कि आप क्या कर रहे थे, यह अगले देव (या स्वयं कुछ महीनों में) के लिए भी बहुत आसान है।

11

क्या आप की जरूरत है, तो जाँच करने के लिए पैनल खोला या बंद कर दिया hasClass

if($(".ui-panel").hasClass("ui-panel-open") == true){ 
    alert("OPENED"); 
}else{ 
    alert("CLOSED"); 
} 
उपयोग कर रहा है
1
function OpenPanel(panel) { 
    if ($(".ui-page-active").jqmData("panel") !== "open") { 
     $(panel).panel("open"); 

    }else{ 
     $(panel).panel("close"); 
    } 
} 

उपयोग:

<div onclick='OpenPanel("#ui-panel1");'>Click Here</div>