2012-01-27 6 views
14

मैं कुछ एम्बेड कोड कि पेज को गतिशील करने के लिए HTML डालने और के बाद से मुझे लगता है कि डायनामिक रूप से सम्मिलित HTML संशोधित करने के लिए है का उपयोग कर रहा है, मैं जब तक पृष्ठ के लोड होते प्रतीक्षा करने के लिए एक jQuery समारोह चाहते हैं, मैं delay कोशिश की लेकिन यह काम नहीं लग रहा है।कुछ करने के बाद पृष्ठ के लोड होते पूरी तरह से

उदाहरण के लिए, डायनामिक रूप से सम्मिलित HTML एक तत्व div#abc

है और मैं इस jQuery है:

if ($('#abc')[0]) { 
    alert("yes"); 
} 

चेतावनी दिखाई नहीं देता।

मैं किसी भी मदद की सराहना करेंगे,

धन्यवाद

+1

पर निर्भर करता है, जहां/कैसे आप गतिशील HTML है कि div # एबीसी –

+1

कैसे 'div # HTML/डोम को जोड़ा गया abc' है डालने कर रहे हैं? – Stefan

+0

हम्म .. उदाहरण गूगल प्लस एक एम्बेड कोड के लिए, मैं एक जावास्क्रिप्ट मेरी एचटीएमएल, जो बारी में एक iframe और अन्य divs लोड करता है में जगह है, मैं उन तत्वों – 3zzy

उत्तर

34
$(window).load(function() { 
    .... 
}); 

आप एक iframe लिए इंतजार करना पड़ (और संपत्ति, बस डोम के बारे में परवाह नहीं है) है - इस प्रयास करें:

$(document).ready(function() { 
    $('iframe').load(function() { 
     // do something 
    }); 
}); 
+0

नहीं में से एक को संशोधित करने के लिए अभी भी नहीं करना चाहता। – 3zzy

+0

ऐसा इसलिए हो सकता है क्योंकि एम्बेड कोड आईफ्रेम और/या असीमित रूप से HTML डालें? – 3zzy

+0

यह वर्तमान पृष्ठ पर सभी संपत्तियों के लिए इंतजार कर रहा है। क्या आपके पास आईफ्रेम भी इंतजार कर रहा है? –

4

इस प्रयास करें:

$(document).ready(function() { 
    if ($('#abc')[0]) { 
     alert("yes"); 
    } 
}); 
9

jQuery's .ready() घटना का उद्देश्य है कि:

$(document).ready(function() { 
    if ($('#abc').length) //If checking if the element exists, use .length 
     alert("yes"); 
}); 

विवरण: निष्पादित करने के लिए जब डोम पूरी तरह से भरी हुई है एक समारोह का उल्लेख करें।

+1

जेम्स के पास यह सही है। प्रलेखन देखें: http://api.jquery.com/ready/ .. डॉम लोड हो जाएगा और इसे कॉल करने पर मैनिपुलेशन के लिए तैयार किया जाएगा। –

+1

और एक त्वरित नोट के रूप में ... मुझे लगता है कि window.load और jQuery.ready के बीच का अंतर यह है कि window.load * सभी * संपत्तियों (जैसे स्टाइलशीट्स, इमेज इत्यादि) को तब तक डाउनलोड किया जाता है जब इसे कॉल किया जाता है जबकि jQuery.ready डीओएम लोड होने के तुरंत बाद आग लगती है और अगर छवियां और अभी भी लोड हो रही हैं तो परवाह नहीं है। –

+0

"एम्बेड कोड जो गतिशील रूप से पृष्ठ पर HTML डालें" 'तैयार' ईवेंट ट्रिगर होने के बाद DOM में बहुत अच्छी तरह से जोड़ा जा सकता है। – Stefan

6

jQuery.ready का उपयोग करना पर्याप्त होना चाहिए। प्रयास करें इस

$(document).ready(function(){ 
    //your code here 
}); 

या

$(function(){ 

}); 

जो पहले के एक शॉर्टकट है।

1
$(window).load(function() { ... } 

पर्याप्त हो सकता है लेकिन अन्यथा आपका एम्बेड किया गया कोड (जो भी हो सकता है) कुछ कॉलबैक कार्यक्षमता प्रदान कर सकता है जिसका आप उपयोग कर सकते हैं।

delay() केवल animations देरी करने के लिए इस्तेमाल किया जाना चाहिए।

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