प्रोटोटाइप ढांचे में जावास्क्रिप्ट घटना पदानुक्रम

वोट
1

वहाँ किसी भी घटना के बीच संभाला जा रहा है डोम: लोड और लोड प्रोटोटाइप जावास्क्रिप्ट ढांचे का उपयोग कर?
मैं एक preloader प्रोटोटाइप जो इस तरह लग रही है का उपयोग कर क्रियान्वित किया है:

Event.observe(window,load,preload);
function preload(){
    if($('wrapper'))
        $('wrapper').setStyle({display:block});
    if($('loading'))
        setTimeout('$(loading).fade({duration: 5.0});',4000);
}

फिर मैं स्तंभ ऊंचाई fixatioan है जिसके लिए उपयोग कर एक दूसरे हैंडलर कर दिया है:

Event.observe(window,load,function(){ 
    var bottomExtraOffset = (Prototype.Browser.IE) ? 100 : 130;
    if(parseInt($$('.col1')[0].getStyle('height')) > parseInt($$('.col2')[0].getStyle('height')))
        $('wrapper').setStyle({'height' : parseInt($$('.col1')[0].getStyle('height'))+bottomExtraOffset+'px'}); 
    else
        $('wrapper').setStyle({'height' : parseInt($$('.col2')[0].getStyle('height'))+bottomExtraOffset+'px'});
});//observe    

यह किसी भी ब्राउज़र लेकिन IE में बहुत अच्छा काम कर रहा है! ऐसा नहीं है कि आईई ऑनलोड हैंडलर सूची में दूसरा हैंडलर जोड़कर नहीं है, इसलिए जब पहले एक यह रिटर्न 0 coz यह अभी भी कोई भी प्रदर्शित किया जाता है स्तंभों में से किसी की ऊंचाई प्राप्त करने के लिए कोशिश कर रहा है लगता है।

वहाँ के अलावा कोई अन्य घटना है लोड और डोम: लोड नियंत्रित किया जा करने के लिए और मुझे इस से बाहर हो !?

30/03/2009 को 12:44
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

आप बस दूसरे समारोह के बाद आप प्रीलोड पूरा कर लें कॉल कर सकते हैं ()?

या यदि आप न सीधे प्रीलोड के बाद यह कॉल करना चाहते हैं () तो आप कुछ एक ध्वज सेट और तब तक पहले निष्पादित करने के लिए किया जाता है प्रतीक्षा करने के लिए खंड समारोह में एक टाइमआउट सेट की तरह कर सकता है।

यदि आदेश महत्वपूर्ण है कि आप कार्यों के बीच संवाद की जरूरत है।

30/03/2009 को 13:28
का स्रोत उपयोगकर्ता

वोट
0

ऐसा कोई घटना AFAIK है, और यहां तक कि डोम: लोड घटना प्रोटोटाइप डेवलपर्स द्वारा कार्यान्वित किया जाता है और कहा कि जे एस में एक डिफ़ॉल्ट घटना नहीं है। आप दूसरे हैंडलर के प्रदर्शन में देरी करने के लिए एक सहायक का उपयोग करना चाहें, तो पहले एक पहली बार प्रदर्शन किया जाएगा:

function foo(){ 
    var bottomExtraOffset = (Prototype.Browser.IE) ? 100 : 130;
    if (parseInt($$('.col1')[0].getStyle('height')) > parseInt($$('.col2')[0].getStyle('height'))) {
        $('wrapper').setStyle({'height' : parseInt($$('.col1')[0].getStyle('height')) + bottomExtraOffset + 'px'}); 
    }
    else {
        $('wrapper').setStyle({'height' : parseInt($$('.col2')[0].getStyle('height')) + bottomExtraOffset + 'px'});
    }
}

function bar() {
  // One msec delay.
  setTimeout(foo, 1);
}

Event.observe(window, "load", bar); // or window.observe("load",bar);

इसके अलावा, आप देख सकते हैं कि उपयोगकर्ता एजेंट आईई जैसे कुछ नरक है, तो इस विधि का उपयोग करें और अपने एक अन्यथा कहा।

30/03/2009 को 14:43
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more