2011-02-07 22 views
10

में jQuery के साथ लोड इवेंट विफल रहता है मैंने एक छवि को पीछे की ओर स्केल करने के लिए एक jquery प्लगइन लिखा है। यानी 8 छवि के बड़े संस्करण की लोड घटना विफल हो जाती है। मैंने thsi की तरह कोशिश की:आईई 8

 var fullImage = container.find(options.fullSelector); 
     fullImage.attr('src', fullImageUrl).bind('load', function() { 
      content.fadeOut(options.fadeSpeed, function(){ 
       if(slideContent.size()){ 
        slideContent.slideUp(options.resizeSpeed, function(){ 
         smallImage.hide(); 
         fullImage.show(); 
         fullImage.parent().andSelf().stop().animate({ width: options.fullWidth + 'px' }, options.resizeSpeed); 
        }); 
       } 
       else{ 
        smallImage.hide(); 
        fullImage.show(); 
        fullImage.parent().andSelf().stop().animate({ width: options.fullWidth + 'px' }, options.resizeSpeed); 
       } 
      }); 
     }); 

त्रुटि कहती है: ऑब्जेक्ट संपत्ति या विधि का समर्थन नहीं करता है।

मैं क्या गलत कर रहा हूं?

धन्यवाद

+0

पहली पंक्ति के बाद, प्रकार 'चेतावनी (fullImage.length);' अगर खोज वास्तव में कुछ हो रही है निर्धारित करने के लिए। जब ट्रैवर्सल की बात आती है तो आईई 8 में कुछ क्विर्क होते हैं। – karim79

+0

एक दूसरे नोट पर, आईई 8 कुछ भी लोड करने में खुश नहीं है। मुझे आश्चर्य है कि यह अन्य ब्राउज़रों को डाउनलोड करने की अनुमति देता है: डी – Shrinath

+0

मैं इसके साथ: अगर (fullImage.size())। क्या वह वही नहीं है? लोडिंग के बारे में: मुझे कभी समस्या नहीं हुई है ... – luksak

उत्तर

49

सेट load हैंडलर पहले, तो src निर्धारित किया है।

fullImage.bind('load', function() { 
    ... 
}).attr('src', fullImageUrl); 
+2

आदमी, अगर मैं कर सकता तो मैं दस बार ऊपर जाऊंगा। धन्यवाद। – clime

+1

सरल और प्रभावी समाधान। धन्यवाद –

+0

ओपी से थोड़ा अलग मुद्दा था जहां मेरा लोड हैंडलर कभी गोलीबारी नहीं कर रहा था, लेकिन यह मेरे लिए भी तय किया गया। क्या कोई यह समझाने में मदद कर सकता है कि यह क्यों काम करता है? मेरा अनुमान है कि लोड हैंडलर जोड़े जाने से पहले आईई छवि को कैश से खींच सकता है। संबंधित: http://davidwalsh.name/image-load-event –

0

इसके बारे में क्या?

var test = function($what) { 
 
    $('#debug').html('Image loaded: '+$what.width+' x '+$what.height); 
 
    console.log($what); 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script> 
 
// Random image 
 
var src = "http://placehold.it/300x" + Math.round(Math.random() * (310 - 100) + 100); 
 
</script> 
 
<div id="debug">Image loading:</div>  
 
<img onload="test(this)" id="img" /> 
 

 
<script> 
 
$('#img')[0].src = src; 
 
</script>