2011-06-18 11 views
6

मैं साथ jQuery मोबाइल अल्फा 4 के माध्यम से संवाद बॉक्स प्रदर्शित ajax की तरह:कैसे बंद करने और ओवरले jQuery मोबाइल मॉडल संवाद करने के लिए?

उत्तराधिकारी कॉलबैक के भीतर:

success: 
$j('#wchkdiv').html(msg); 
$j("#wchkdiv").dialog(); 
$.mobile.changePage($('#wchkdiv'), 'pop', false, true); 

कोड से ऊपर अच्छी तरह से अपनी उपस्थिति में संक्रमण के लिए html पृष्ठ में कुछ पाठ है जब संवाद का कारण बनता है पर क्लिक किया गया (एंकर टैग नहीं) जिस पर जावास्क्रिप्ट बाइंड पर क्लिक करता है।

अब संवाद के भीतर मैं कोड की तरह:

<form id="gform" name="gform" class="formbody" method="post"> 
<input class="btns" type="button" onclick="return wchkSubmit(event,'tryAgain');" 
    name="tryAgain" value="Try Again"/> 
</form> 

जब पुन: प्रयास करें बटन क्लिक किया गया है, मैं इस जावास्क्रिप्ट जो संवाद पास (अन्य बातों के यह करने की जरूरत के अलावा) बनाना चाहिए के माध्यम से संभाल चाहिए, और संवाद पृष्ठ से पहले दिखाया गया सामग्री पृष्ठ दिखाया गया था, अब फिर से दिखा रहा है। इसका मतलब है कि यह कारण नहीं चाहिए किसी भी पृष्ठ reloading और संवाद बॉक्स ब्राउज़िंग इतिहास का हिस्सा नहीं होना चाहिए।

यह एक और बड़ा प्लस होगा यदि आप मुझे दिखा सकते हैं कि एचटीएमएल पेज की सामग्री के साथ एचटीएमएल पेज के शीर्ष पर स्क्रीन ओवरलेइंग के हिस्से में दिखाई देने के लिए मैं jquery मोबाइल संवाद कैसे बना सकता हूं या किसी प्रकार का पारदर्शिता प्रभाव? वर्तमान में संवाद पूरी स्क्रीन लेता है।

$j("#wchkdiv").dialog('close'); 

पर संवाद पॉपअप बनाने के लिए के रूप में:

उत्तर

7

लाइव उदाहरण: http://jsfiddle.net/ReMZ6/4/

एचटीएमएल

<div data-role="page" data-theme="c" id="page1"> 
    <div data-role="content"> 
     <p>This is Page 1</p> 
     <button type="submit" data-theme="a" name="submit" value="submit-value" id="submit-button-1">Open Dialog</button> 
    </div> 
</div> 

<div data-role="page" data-theme="a" id="page2"> 
    <div data-role="content"> 
     <p>This is Page 2</p> 
     <button type="submit" data-theme="e" name="submit" value="submit-value" id="submit-button-2">Close Dialog</button> 
    </div> 
</div> 

जे एस

$('#submit-button-1').click(function() { 
    $.mobile.changePage($('#page2'), 'pop', false, true); 
}); 

$('#submit-button-2').click(function() { 
    alert('Going back to Page 1'); 
    $.mobile.changePage($('#page1'), 'pop', false, true); 
}); 
+0

मैंने मूल प्रश्न सही नहीं पढ़ा - फिल का जवाब वास्तव में बहुत बेहतर है, अगर आप जेक्यूएम को संवाद खोलते समय हैश को नहीं बदलते हैं, तो वास्तव में आपको मूल पृष्ठ पर वापस जाने के लिए चेंज पेज का उपयोग करने की आवश्यकता है। ध्यान में रखते हुए इस वाक्यविन्यास को ध्यान में रखें जब बीटा 1 (या जिसे वे लेबल करना चुनते हैं) बाहर आते हैं, और इसे 1.0 रिलीज़ से पहले हटा दिया जाएगा। –

+0

आपके उत्तर में मेरी समस्या का 70% हल हो गया। अब जिस मुद्दे पर मैं फंस गया हूं वह यह है कि मैं संवाद में पुनः प्रयास करें बटन पर क्लिक करता हूं, यह मुझे एचटीएमएल पेज पर सही तरीके से ले जाता है लेकिन जब मैं एचटीएमएल पेज में एक शब्द फिर से क्लिक करता हूं, तो संवाद में डिस्प्ले संक्रमण होता है, लेकिन यह एक फॉर्म के साथ पेज जैसा दिखता है । jQm इसे एक दूसरे के बाद और बाद के समय के रूप में शैली में विफल करने में विफल रहता है। मैंने इतनी सारी चीजों की कोशिश करके इस समस्या को हल करने के लिए काफी समय बिताया लेकिन कोई किस्मत नहीं। – ace

+0

क्या आप थोड़ा और कोड पोस्ट कर सकते हैं? –

0

मैं सकारात्मक नहीं मैं पूरी तरह पालन करें आप जावास्क्रिप्ट के माध्यम से संवाद को बंद करने के लिए कोशिश कर रहे हैं, लेकिन, कर रहा हूँ, तुम सब करने की जरूरत है कॉल है एक ही "पेज", मैं तुम्हें jQM चयन सूचियों के व्यवहार की बात कर रहे अनुमान लगा रहा हूँ? यदि हां, तो मेरे सर्वोत्तम ज्ञान के लिए, यह संभव नहीं है - उस अंत में मैंने वास्तव में संवाद का अपना संस्करण लिखा था, डेमो यहां पाया जा सकता है: http://dev.jtsage.com/jQM-SimpleDialog/

यदि मैं पूरी तरह से इस बिंदु को याद करता हूं, तो कृपया मुझे पता है और मैं देखूंगा कि मैं कुछ अंतर्दृष्टि जोड़ सकता हूं या नहीं।

+0

मैं थक गया $ जे ("# wchkdiv") संवाद ('बंद')। पहले से ही यह काम नहीं करता है। इसका ब्राउजर बैक बटन मारने का असर पड़ता है। जो मुझे उस पृष्ठ पर वापस ले जाता है जो मेरे एचटीएमएल पेज से पहले था। उदाहरण के लिए यदि मैं Google पर हूं।कॉम और अब मेरे एचटीएमएल पेज के यूआरएल दर्ज करें, यह मुझे goole.com पर वापस ले जाएगा, काफी आपदाजनक। मैं झूठी वापसी करता हूं या क्लिक रद्द करने के लिए अन्य चीजें करता हूं लेकिन कोई फर्क नहीं पड़ता। – ace

+0

आपकी टिप्पणी के लिए बेटे फिल का जवाब। बहुत जानकारीपूर्ण था। – ace

4

आप जो खोज रहे हैं करने के लिए निकटतम बात शायद jtsage के jQuery-मोबाइल-simpledialog

है

+०१२३३६८८८७५

HTML:

<p>You have entered: <span id="dialogoutput"></span></p> 
<a href="#" id="dialoglink" data-role="button">Open Dialog</a> 

जावास्क्रिप्ट:

$('#dialoglink').live('vclick', function() { 
    $(this).simpledialog({ 
    'mode' : 'string', 
    'prompt' : 'What do you say?', 
    'buttons' : { 
     'OK': { 
     click: function() { 
      $('#dialogoutput').text($('#dialoglink').attr('data-string')); 
     } 
     }, 
     'Cancel': { 
     click: function() { return false; }, 
     icon: "delete", 
     theme: "c" 
     } 
    } 
    }) 
}) 
1

मैंने पाया $('.ui-dialog').dialog('close'); एक जे एस के माध्यम से बातचीत बंद करने के लिए काम करता है।

और, $.mobile.changePage('#pageID', {transition: 'pop', role: 'dialog'}); पॉप संवाद दिखाने के लिए।

संबंधित मुद्दे