2013-04-10 52 views
0

我已經完全正常工作的jQuery代碼,它使用UI位置插件來根據偏移等在網頁中定位圖標。

雖然這個工作正常,但在重新調整瀏覽器大小和重新計算圖標位置時遇到一些問題。 如何將.position()函數綁定到下面的代碼的$(window).resize()事件?

(function($) { 
$(window).load(function(event) { 


if ($(element_selector).length !== 0 && $(title_class_selector).length !== 0 ) { 

$(title_class_selector).position({ 
my: "center", 
at: cornerPosition, 
    offset:"<?php echo $x_coordinates_foradjustment;?> <?php echo $y_coordinates_foradjustment;?>", 
of: $(element_selector) 

}); 
} 

    }); 
})(jQuery); 

我試圖把:

$(window).bind('resize',event); 

剛剛結束的jQuery之前,並沒有幫助。 感謝您的任何提示..

回答

3

我建議你移動位置處理,以一個單獨的功能,然後將該功能結合到兩個loadresize事件:

var doPosition = function(e) { 
    if ($(element_selector).length !== 0 && $(title_class_selector).length !== 0 ) { 

     $(title_class_selector).position({ 
      my: "center", 
      at: cornerPosition, 
      offset:"<?php echo $x_coordinates_foradjustment;?> <?php echo $y_coordinates_foradjustment;?>", 
      of: $(element_selector) 

     }); 
    } 
}; 

$(window) 
.load(doPosition) 
.resize(doPosition); 

NB:我強烈建議你反彈重新調整大小事件,或者它會發射很多次。這意味着當用戶停止調整大小時,該事件將在調整大小期間觸發一次而不是多次。查看更多在這裏http://www.hnldesign.nl/blog/debouncing-events-with-jquery/

我創建了一個簡單的小提琴(使用警報,而不是你的位置計算的東西,以顯示它的工作原理),以消除抖動,over here

+0

這似乎是正確的做法給我。 '$(window).load(doPosition).resize(doPosition)'會更簡潔一些。 – drquicksilver 2013-04-10 08:04:21

+0

好點,編輯它 – 2013-04-10 09:10:00

+0

謝謝c_kick ..我正在研究你的例子..工程偉大..化學。 – 2013-04-10 10:01:28

相關問題