2012-08-30 34 views
0

我試圖調整容器,併爲它的寬度和高度。這不是所有的代碼部分,但後來無限循環出現我打電話 $ .fn.imageScale.resizeContainer功能,我找不到爲什麼?爲什麼我會變得無限循環?

$(window).load(function(){  
    $('#scalable_images').imageScale(); 
}); 

(function($){ 
$.fn.imageScale = function(){ 

    thisCallback = $(this); // for usage in inner other function 
    images = $(this).find('img'); // images 
    imagesHolder = $(this).find('.item'); // image holder 
    frameSize = 34; // frame size 
    sizingCof = 1.5; // image size cofficient to scale, 1.5 = 150% normal state 
    speed = 600; // speed in ms 

    $.fn.imageScale.resizeContainer(); 
    $.fn.imageScale.resize(); 
    OldContainerW = imagesHolder.width(); 
    OldOffsetL = offsetL; 

    $(window).bind('resize', function(){ 
     $.fn.imageScale.resizeContainer(); 
     $.fn.imageScale.resize(); 
     OldContainerW = imagesHolder.width(); 
     OldOffsetL = offsetL; 
    }); 
} 

$.fn.imageScale.resizeContainer = function(){ 

    var windowW = $(window).width(); 
    var windowH = $(window).height(); 
    var scaleImgH = windowH - frameSize * 2; 
    var scaleImgW = windowW - frameSize * 2; 

    $(this).height(scaleImgH); 
    $(this).width(scaleImgW); 
} 
})(jQuery); 

回答

4

因爲你綁定resizeContainer功能調整大小事件,並在resizeContainer功能您調整容器,再次觸發resize事件,再次執行resizeContainer,循環往復

+0

更換它是的,我同意,你是對的,幫我弄清楚:) – GomatoX

1

如果你已經創建功能觸發resize事件,那麼爲什麼你要綁定它裏面的功能

IF調用$(「#scalable_images」).imageScale();指調整再由它下面

$(window).bind('resize', function(){ 

     $.fn.imageScale.resizeContainer(); 
     $.fn.imageScale.resize(); 
      OldContainerW = imagesHolder.width(); 
     OldOffsetL = offsetL; 
    }); 

的代碼替換下面的代碼和

$.fn.imageScale.resizeContainer(); 
    OldContainerW = imagesHolder.width(); 
    OldOffsetL = offsetL; 
+0

我做過類似的東西對你的建議,但在你的答案之前;) – GomatoX