2012-10-16 12 views
6

मैं यहां देख रहा हूं और Google में बिल्कुल jQuery .load() ईवेंट आग (निश्चित रूप से मेरा मतलब छवियों के लिए लोड इवेंट) है? मैं ठेठ situtation मतलब नहीं है जब छवियों के साथ दस्तावेज़ लोड हो रहा है, मैं क्या पता है - लोड घटना आग जब हम:बिल्कुल jQuery लोड इवेंट आग कब करता है?

1/दस्तावेज़ के लिए नए img जोड़:

$('<img src="picture.jpg" />').appendTo('body'); 

2/बदलने मौजूदा छवि के src विशेषता:

$('img').attr('src' , 'new_path.jpg'); 

3/नई img वस्तु बनाना:

+०१२३५१६४१०६
var object = $('<img src="picture.jpg" />'); 

लेकिन क्या मैं क्योंकि इन स्थितियों के बारे में यकीन नहीं है:

4/जोड़ छवि दस्तावेज़ में नहीं जोड़ा वस्तु के लिए (डोम):

var o = $('<div></div>'); 
o.append('<img src="picture.jpg" />'); 

// मेरा मतलब है डोम पेड़ में मौजूद नहीं है, यह

संलग्न नहीं है imgs साथ

5/लोड हो रहा है सामग्री दस्तावेज़ को जोड़ा गया पर आपत्ति नहीं:

var o = $('<div></div>'); 
o.load('url.html #pictures'); 

// मेरा मतलब है डोम पेड़ में मौजूद नहीं है, यह संलग्न नहीं कर रहा है

मैं मदद के लिए बहुत आभारी होंगे ...

+0

दुर्भाग्य से मेरा मानना ​​है कि 'लोड' व्यवहार ब्राउज़र पर आधारित भिन्न होता है। –

उत्तर

2

नंबर 4 के लिए, यह केवल एक बार फायरिंग प्रतीत होता है जब यह इन-मेमोरी ऑब्जेक्ट में जोड़ा जाता है और यह डोम में जोड़े जाने पर फिर से आग नहीं लगाता है। इस पहेली को देखें: http://jsfiddle.net/JxHe4/ और क्रोम टूल्स या फ़ायरबग में नेटवर्क यातायात और कंसोल आउटपुट देखें।

व्यवहार क्रोम, फ़ायरफ़ॉक्स और आईई 9 के बीच संगत लगता है। अब यह आपके प्रश्न का हिस्सा है (उम्मीद है) लेकिन व्यवहार के कारण की व्याख्या नहीं करता है। मेरा अनुमान है कि यह जिस तरह से निर्दिष्ट है (चूंकि सभी ब्राउज़र समान व्यवहार करते हैं) लेकिन मुझे विनिर्देश नहीं मिल रहा है जहां ऑनलोड ईवेंट औपचारिक रूप से परिभाषित किया गया है।

संख्या 5 के लिए, मुझे पृष्ठ लोड करके छवियों के भार को प्रभावित होने की उम्मीद नहीं होगी, मुझे नहीं पता कि आप इन छवियों का संदर्भ पहली बार कैसे जोड़ सकते हैं। ।

[अद्यतन]

This excerpt from HTML4 specification बिंदु 4 में व्यवहार समझा सकता है: (इस मामले में आईएमजी) एक एम्बेडेड दस्तावेज़ दस्तावेज़ जिसमें यह अंतर्निहित है की पूरी तरह से स्वतंत्र है। उदाहरण के लिए, एम्बेडेड दस्तावेज़ के भीतर सापेक्ष यूआरआई एम्बेडेड दस्तावेज़ के आधार यूआरआई के अनुसार हल होते हैं, न कि मुख्य दस्तावेज़ की। एक एम्बेडेड दस्तावेज़ केवल एक अन्य दस्तावेज़ के भीतर प्रस्तुत किया जाता है (उदाहरण के लिए, एक सबविंडो में); यह अन्यथा स्वतंत्र रहता है।

+1

# 4 के लिए भी बेहतर है, अगर आप '$ (" प्लेसहोल्डर ") पर टिप्पणी करते हैं। (ओ) संलग्न करें; 'तो घटना अभी भी आग लग जाएगी। – Calavoow

+0

हाँ .. यही मेरा मतलब था, यह केवल एक बार आग लगने पर आग लग जाती है, और जब यह डीओएम – kabaros

+0

# 4 में जोड़ा जाता है तो यह फिर से आग नहीं होता है, ऐसा लगता है कि आईएमजी में शामिल होने पर ईवेंट को निकाल दिया जाता है -मेमरी ऑब्जेक्ट लेकिन यह ओपेरा (केवल एफएफ/आईई/क्रोम) में काम नहीं करता है। – Lluck

0
मामले में

4 - आप वर o के तत्व जोड़ सकते हैं और अब जब आप कुछ डोम करने के लिए अपने वर o संलग्न है, यह div युक्त img जोड़ना होगा।

5 - o.load के मामले में, सामग्री को तब तक लोड नहीं किया जा रहा है जब तक कि आपके var o पृष्ठ पर डंप नहीं हो जाता। हालांकि आपको कंसोल में एक त्रुटि नहीं मिलेगी।

+0

कृपया एसओ पर txtspk से बचना। हर कोई एक धाराप्रवाह अंग्रेजी वक्ता नहीं है और 'यू' और 'वेन' जैसे अपमानजनक भ्रमित हैं। – Jamiec

+0

मैं इसे ध्यान में रखूंगा। संपादित करने के लिए धन्यवाद jamiec। –

0

आपके # 4 को अधिकांश मामलों में लोड ईवेंट ट्रिगर करना चाहिए (कैश किए गए चित्रों के साथ कुछ समस्याएं हो सकती हैं), हालांकि # 5 हो सकता है या नहीं, इस पर निर्भर करता है कि आप ईवेंट को बांधते हैं और छवि कितनी तेज़ी से लोड होती है। यदि आप .load(url) के बाद लाइन पर ईवेंट को बाध्य करते हैं, तो यह आग नहीं लगेगा क्योंकि छवि अभी तक मौजूद नहीं है। यदि आप इसे .load कॉल की सफलता में रखते हैं, तो यह ट्रिगर हो सकता है अगर यह आपके (बाध्य स्थिति) को बाध्य करने से पहले ट्रिगर नहीं हुआ है।

+0

आपने लिखा है: "यदि छवि को सीधे डीओएम में शामिल किया गया है, तो यह केवल तभी लोड किया जाएगा जब यह दिखाई दे रहा हो"। मुझे यकीन नहीं है कि आप सही हैं, तो कृपया इस उदाहरण पर नज़र डालें: http://jsfiddle.net/neam3/ - जब आपके पास

लोड ईवेंट अभी भी आग लग रहा है ... – Lluck

+0

आप सही हैं, मेरे परीक्षण में मैं था गलत होने के बाद तक इंतजार कर रहे थे। –

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