तो मैं एक मुद्दे को छोड़कर बड़ी सफलता के साथ Jquery मोबाइल का उपयोग कर रहा हूं। अब जब भी किसी गतिशील सामग्री पृष्ठ को किसी उपयोगकर्ता द्वारा नेविगेट किया जाता है, इससे कोई फर्क नहीं पड़ता कि सामग्री किस प्रकार प्रदर्शित होती है, नीचे हमेशा एक बटन होता है जब निर्दिष्ट पते पर सामग्री को ईमेल पर क्लिक किया जाता है; बहुत अच्छा काम करता है। अब पहली बार एक पृष्ठ लोड हो गया है, क्लिक एक बार घटना को आग लगती है। दूसरी यात्रा पर इसे दो बार, तीसरा 3 बार, निकाल दिया गया। आपको बिंदु मिल गया। मैंने नेट को खराब कर दिया है और हर फिक्स को लागू कर सकता हूं, जैसे कि "पेजिनिट" के बजाय "पेजक्रेट" का उपयोग करना, बाध्यकारी, अनबाइंडिंग, div को हटा देना, डीओएम में कैशिंग बंद करना, लेकिन कुछ भी काम नहीं करता है। मेरे पास एकमात्र सफलता क्लिक पर .one()
का उपयोग कर रही है लेकिन फिर से क्लिक होने पर उसे निकाल दिया जाना चाहिए। संरचना यहाँ है। मुझे लगता है कि इस के साथ प्रत्येक लोड .js
करने के लिए फ़ाइलोंJquery मोबाइल। नए पेज पर कई बार फायरिंग पर जाएं
$("#page").live("pageinit", function() {
अब मैं एक फ़ाइल में ईमेल समारोह और अन्य सामान था शुरू कर दिया है, लेकिन यह आसान उन्हें अलग करने और मैंने सुना है यह कोई बात नहीं करता है। अब, यहाँ ईमेल समारोह में pageinit
$('.eb').live('click', function() {
var id = $('.eb').attr('id');
var to = $('#recipient').val();
var message = $('#email').html();
var atpos = to.indexOf("@");
var dotpos = to.lastIndexOf(".");
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= to.length) {
alert('Please enter a valid email address!');
return false;
}
if(to.length == 0) {
alert('Please enter a valid email address!');
return false;
}
$.mobile.showPageLoadingMsg();
$.post('./services/service.email.php', { id: id, to: to, message: message}, function(data) {
if(data.success == true) {
$.mobile.hidePageLoadingMsg();
alert('Your recipe has been sent!');
$('#recipient').val('');
return true;
}
if(data.success == false) {
if(data.fail == 1) {
alert('An error has occured sending your recipe. Try again soon!');
return false;
}
if(data.fail == 2) {
alert('Please enter a valid email address!');
}
}
}, 'json');
return false;
});
सब कुछ कहा जाता है प्रत्येक नए पृष्ठ पर .click
के वृद्धिशील फायरिंग छोड़कर दोषरहित काम करता है। क्या कोई मुझे सही दिशा में ले जा सकता है?
यह प्रक्रिया सभी प्रकार की घटना बाइंडिंग के पीछे जा रही है जो आवश्यक नहीं हैं (आपकी साइट उपयोगकर्ताओं को आगे बढ़ने के लिए धीमा कर दिया जाएगा क्योंकि आप केवल अधिक से अधिक प्रतिनिधि कार्यक्रम हैंडलर लोड कर रहे हैं जिन्हें किसी ईवेंट के दौरान जांचना होगा डीओएम ऊपर बुलबुले)। आपकी समस्या गतिशील सामग्री के साथ काम करने का नियमित नुकसान था, आप अपने ईवेंट बाइंडिंग के साथ बहुत उदार थे। वास्तविक फिक्स प्रतिनिधि कार्यक्रम हैंडलर का उपयोग करना बंद करना है जहां वे आवश्यक नहीं हैं। मुझे खुशी है कि आपने कुछ पता लगाया लेकिन यह एक अच्छा जवाब नहीं है। – Jasper