2010-08-16 17 views
6

मुझे उस तत्व की ऊंचाई निर्धारित करने में थोड़ा परेशानी हो रही है जिसे मैं गतिशील रूप से लोड कर रहा हूं।jquery सेट ऊंचाई लोड के बाद

मैं अपने वर्तमान पृष्ठ पर एक बाहरी (गतिशील) पृष्ठ को एक div (#cbox) में लोड करने के लिए jquery load फ़ंक्शन का उपयोग करता हूं। चूंकि यह उप-पृष्ठ गतिशील है, इसलिए मैं सामग्री के ऊंचाई की तुलना में पहले से नहीं जानता। सामग्रियों को लोड होने के बाद मैं ऊंचाई प्राप्त करना चाहता हूं और कंटेनर div की ऊंचाई को मिलान करने के लिए सेट करना चाहता हूं ताकि मेरा रंग पृष्ठभूमि सीएसएस नीचे जा सके। मैंने केवल सीएसएस में 100% ऊंचाई divs की कई भिन्नताओं की कोशिश की है, लेकिन जैसे ही मैं पृष्ठ को स्क्रॉल करता हूं, रंग स्क्रॉल हो जाता है (100% केवल ब्राउज़र विंडो की ऊंचाई का 100% सेट करता है, और बी/सी सामग्री गतिशील रूप से होती है लोड किया गया यह काम नहीं करता है। मेरा समाधान लोड की गई सामग्री की ऊंचाई पर div की ऊंचाई निर्धारित करना है, लेकिन यह केवल दूसरे क्लिक पर काम करता है (क्योंकि उस बिंदु पर पृष्ठ लोड और सुलभ है। मुझे क्या पता लगाना चाहिए कैसे करना है बाहरी पृष्ठ पहले ही लोड हो जाने के बाद div की ऊंचाई बदलना है, लेकिन मुझे इसे समझने की प्रतीत नहीं होती है)

मुझे उम्मीद है कि यह किसी के लिए समझा जा सकता है, मुझे एहसास है कि यह थोड़ा उलझन में है।

यहां मेरा ऑनक्लिक कोड है:

jQuery('#cbox').load('externalpage.php'); 
jQuery('#cbox').height(jQuery('#content').height()); 

अद्यतन: काम के लिए निम्न उपाय मुझे लगता है कि div करने के लिए ऊंचाई सेट करना चाहते हैं। लेकिन अब मुझे लगता है कि मैं इसे केवल उस div ऊंचाई पर सेट करना चाहता हूं यदि सामग्री की ऊंचाई विंडो की तुलना में टॉलर है। अन्यथा मैं इसे 100% पर सेट करना चाहता हूं। मैंने अपने कोड को थोड़ा (ऑनलिक घटना) में संशोधित करने की कोशिश की:

jQuery('#cbox').load('<?php the_permalink(); ?>', function() 
    { 
     if (jQuery('#cbox').height() < jQuery('#content').height()) 
     { 
     jQuery('#cbox').height(jQuery('#content').height()); 
     } 
     else 
     { 
     jQuery('#cbox').height('100%'); 
     } 
    }); 

लेकिन यह काम नहीं करता ... कोई विचार?

+0

आप jQuery के लिए '$' शॉर्टकट का उपयोग क्यों नहीं करते? '$ ('# cbox')' jQuery ('# cbox') से बहुत छोटा है;) – Znarkus

+1

@Znarkus अन्य पुस्तकालयों के साथ संघर्ष पैदा कर सकता है। मुझे पता है कि एक निश्चित परेशान सीएमएस jQuery के एक भयानक अनुकूलित संस्करण का उपयोग करता है। –

+0

jquery – corroded

उत्तर

16

सामग्री लोड होने के बाद आपको कॉलबैक फ़ंक्शन कॉल करने की आवश्यकता है।

jQuery('#cbox').load('externalpage.php', function() { 
    jQuery('#cbox').height(jQuery('#content').height()); 
}); 
+0

40sec द्वारा मुझे मारो! –

+0

lol मैं sidetracked मिल गया मैं तुम्हें दोनों को हराया होगा: पी भी आप के लिए वोट वोट: पी – corroded

+0

आप दोनों के लिए धन्यवाद! :) यह काम करता है अगर मैं उस div को ऊंचाई सेट करना चाहता हूं। लेकिन अब मुझे लगता है कि मैं इसे केवल उस div ऊंचाई पर सेट करना चाहता हूं यदि सामग्री की ऊंचाई विंडो की तुलना में टॉलर है। अन्यथा मैं इसे 100% पर सेट करना चाहता हूं। मैंने आपके कोड को थोड़ा (ऑनलिक ईवेंट) में संशोधित करने का प्रयास किया: jQuery ('# cbox') लोड ('', फ़ंक्शन() { अगर (jQuery ('# cbox') .height() Stephen

4

लोड कॉलबैक का उपयोग करें।

jQuery('#cbox').load('externalpage.php', function() { 
    jQuery('#cbox').height(jQuery('#content').height()); 
}); 
संबंधित मुद्दे