मैं फ्लाई बाहर मेनू के लिए इस प्लगइन का उपयोग कर रहा:jQuery स्थिति() फोन
<div class="stuff">
some stuff
<a class="quickfire">menu</a>
</div>
मैं कुछ करने के लिए इसे लागू करने हूँ: http://www.filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/
बटन ऐसे ही एक div के अंदर है इस प्रकार लिंक:
jQuery('.quickfire').menu({
content: jQuery('#search-engines').html(), // grab content from this page
showSpeed: 400
});
जहां .quickfire लिंक का वर्ग नाम है। अब तक बहुत अच्छा है, काम करता है।
हालांकि उपयोगकर्ता एजेक्स कॉल भी ट्रिगर कर सकता है, जो सर्वर से एचटीएमएल का एक गुच्छा लाएगा और नई सामग्री के साथ div "सामान" को प्रतिस्थापित करेगा (जिसमें स्वयं एक क्विकफायर लिंक होगा)।
jQuery.ajax({
url: 'ajax_file.php',
data: {
action: 'create_option_new_version',
id: jQuery('#qid').val(),
div: jQuery("#addMoreOptions").parent().parent().attr('id'),
cleanOutput: true
},
success: function(data, textStatus, jqXHR){
jQuery(".stuff").html(data);
}
});
जैसा कि अपेक्षित है, क्विकफायर लिंक अब jQuery मेनू से जुड़ा हुआ नहीं है। इसलिए, मैं इसे हर बार फिर से जोड़ रहा हूं:
jQuery.ajax({
url: 'ajax_file.php',
data: {
action: 'create_option_new_version',
id: jQuery('#qid').val(),
div: jQuery("#addMoreOptions").parent().parent().attr('id'),
cleanOutput: true
},
success: function(data, textStatus, jqXHR){
jQuery(".stuff").html(data);
var position = jQuery('.quickfire').position();
console.log("left: " + position.left + " top: " + position.top);
jQuery('.quickfire').menu({
content: jQuery('#search-engines').html(), // grab content from this page
showSpeed: 400
});
}
});
लगभग वहां!
मुद्दा यह है कि, जब मैं नव निर्मित quickfire बटन पर क्लिक करें, यह काम करता है है, लेकिन मेनू बटन के आगे के बजाय, अपनी स्क्रीन के ऊपरी बाएं कोने में दिखाई देता है!
मैं quickfire बटन के "स्थिति" प्रिंट करने की कोशिश की। प्रारंभिक लोड एक के लिए, यह 361 x 527. बाद में लोगों के लिए कहा, वे सब कहते हैं कि 0 x 320
यहाँ वास्तविक कोड है:
jQuery("#addMoreOptions").live('click',function(){
jQuery(".lastPollOptionInput").removeClass("lastPollOptionInput");
jQuery.ajax({
url: 'ajax_file.php',
data: {
action: 'create_option_new_version',
id: jQuery('#qid').val(),
div: jQuery("#addMoreOptions").parent().parent().attr('id'),
cleanOutput: true
},
success: function(data, textStatus, jqXHR){
jQuery("#addMoreOptions").parent().parent().html(data);
jQuery('.quickfire').fgmenu({
content: jQuery('#search-engines').html(), // grab content from this page
showSpeed: 400
});
}
});
});
मैं सही सामग्री की जगह से पहले, फिर उसे पुन: सम्मिलित "अलग" करने के लिए quickfire बटन की कोशिश की। अब यह मेनू को बाईं ओर नहीं रखता है, इसके बजाय यह मेनू को बिल्कुल ठीक कहता है जहां मैंने AJAX कॉल किया था (जो मुझे लगता है कि समझ में आता है)। बिल्कुल सही स्थान नहीं है, लेकिन कम से कम भौगोलिक दृष्टि से बहुत करीब –
क्या आप उस पृष्ठ से लिंक कर सकते हैं जहां आप यह समस्या देख रहे हैं? Jsfiddle (http://jsfiddle.net/6VrgD/3/) पर एक प्राथमिक परीक्षण से पता चलता है कि आपके कोड में कहीं और कुछ गलत हो सकता है ... – Chris
दुर्भाग्य से नहीं, यह मेरे कंप्यूटर पर रहता है और क्लाइंट मुझे साझा नहीं करना चाहता बहुत। लेकिन मैंने कुछ कोड जोड़ा। –