2011-12-21 13 views
5

भरी हुई है मैं इस कोडjQuery .load जाँच नहीं है, तो अपने तत्व

<script type="text/javascript"> 
$("#main_photo_display").load(function(){ 
    alert("loaded"); 
}); 
</script> 

<div id="main_photo_display"></div> 

मैं इसे की जरूरत है कि एक बार div लोड होने के कुछ करने के लिए। वर्तमान में यह कुछ भी नहीं करता है। जब मैं "#main_photo_display" के लिए विंडो को प्रतिस्थापित करता हूं तो यह काम करता है। मैंने गुमराह किया है और मैं आ रहा हूं। लोड करें कि कैसे एक पृष्ठ तत्व लोड किया गया है या नहीं।

+0

आप क्या लोड करने की प्रतीक्षा कर रहे हैं? एक छवि? एक AJAX अनुरोध? – Jasper

उत्तर

0

आप यह नहीं कर सकते: load घटनाओं को किसी भी HTML तत्व पर नहीं निकाल दिया जाता है, केवल उन लोगों पर जिन्हें बाहरी संसाधन लोड करने की आवश्यकता होती है।

तत्व लोड होने के लिए सबसे अच्छा तरीका मार्कअप में script टैग डालना है।

<div id="main_photo_display"></div> 

<script type="text/javascript"> 
    alert("loaded"); 
</script> 

जावास्क्रिप्ट से पहले div पार्स किया गया है चलाने नहीं किया जाएगा।

1

एक सादा div में लोड लोड नहीं होता है, सिवाय इसके कि जब आप AJAX के साथ सामग्री लोड कर रहे हों (जो मुझे नहीं लगता कि आप यहां क्या कर रहे हैं)। यदि आपका कोड आपके पृष्ठ में div के बाद भौतिक रूप से स्थित है, तो div उपलब्ध होगा और आपके कोड को संचालित करने के लिए तैयार होगा (आपको कुछ भी जांचना नहीं है)।

अपने कोड पेज में div से पहले स्थित है, तो आप jQuery के .ready() विधि का उपयोग कर सकते हैं पता करने के लिए जब यह div उपयोग करने के लिए सुरक्षित है:

<script type="text/javascript"> 
    $(document).ready(function() { 
     // safe to access $("#main_photo_display") here 
    }); 
</script> 

<div id="main_photo_display"></div>  
1

या आप डोम के बाद स्क्रिप्ट चला सकते हैं इसलिए तरह तैयार है:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#main_photo_display").load(function(){ 
     alert("loaded"); 
    }); 
}); 
</script> 

<div id="main_photo_display"></div> 

क्षमा मुझे लगता है कि मैंने पढ़ा है यह गलत :) आप इस की जरूरत है:

<script type="text/javascript"> 
    $(document).ready(function() { 
     alert('loaded'); 
    }); 
</script> 
3

लोड ईवेंट किसी तत्व को भेजा जाता है जब यह और सभी उप-तत्वों में पूरी तरह से लोड हो जाता है। यह ईवेंट URL के साथ जुड़े किसी भी तत्व पर भेजा जा सकता है: छवियां, स्क्रिप्ट, फ्रेम, iframes, और विंडो ऑब्जेक्ट।

स्रोत: http://api.jquery.com/load-event/

इसके अलावा एक ही पृष्ठ पर नीचे वे राज्य:

यह करता है सही ढंग से बुलबुला डोम पेड़ नहीं अप

तो तुम 'कर सकते हैं इस घटना को प्रतिनिधि नहीं देते हैं, ईवेंट हैंडलर उस तत्व से जुड़ा होना चाहिए जिस पर load ईवेंट आग लगती है।

1

मुझे नहीं लगता कि एक डीआईवी एक लोडेड घटना को आग लगती है। यदि DIV के भीतर blank.gif छवि थी, तो आप उस पर $.load() फ़ंक्शन संलग्न कर सकते हैं।

<div id="main_photo_display"> 
    ..... Other Content ..... 
    <img class="loadcheck" src="blank.gif" width="0" height="0" /> 
</div> 

<script type="text/javascript"> 
$(document).ready(function(){ 

    $("#main_photo_display img.loadcheck").load(function(){ 
    alert("loaded"); 
    }); 

}); 
</script> 
0

मेरे पास एक प्रकार का कामकाज है, और यह मैला है (अगर आपके पास नोट्स हैं तो कृपया टिप्पणी करें)।

यह उपयोगी है जब आपके पास अपने नियंत्रण से जावास्क्रिप्ट है जो पेज लोड पर आपके डोम पर तत्व जोड़ता है।

$(function() { 

    var counter = 0; 

    var intervalId = setInterval(function() { 
     $(document).mouseover() 
    }, 105); 

    var unbind = function() { 

     $(document).off('mousemove', '#label'); 

     $(document).off('mouseover'); 

     window.clearInterval(intervalId); 

    }; 

    $(document).mouseover(function() { 

     $('#label').trigger('mousemove'); 

     counter++; 

     if (jivositecounter > 200) unbind(); 

    }); 

    $(document).on('mousemove', '#label', function() { 
     console.log(counter); 
     ...doing our stuff when #label appears 
     unbind(); 
    }); 

}); 
संबंधित मुद्दे