2010-04-08 26 views

Trả lời

18

Bạn sẽ muốn sử dụng:

$(document).ready(function() { /* your code */ }); 

Để làm một cái gì đó xảy ra onload. Nếu bạn muốn một cái gì đó để làm việc onload và onresize, bạn nên làm:

onResize = function() { /* your code */ } 

$(document).ready(onResize); 

$(window).bind('resize', onResize); 
1

Hành vi này là do thiết kế.

Bạn nên đặt mã của mình vào một hàm được đặt tên, sau đó gọi hàm.

Ví dụ:

function onResize() { ... } 

$(onResize); 
$(window).resize(onresize); 

Ngoài ra, bạn có thể làm cho một plugin để tự động ràng buộc và thực hiện một handler:

$.fn.bindAndExec = function(eventNames, handler) { 
    this.bind(eventNames, handler).each(handler); 
}; 

$(window).bindAndExec('resize', function() { ... }); 

Lưu ý rằng nó sẽ không hoạt động chính xác nếu xử lý sử dụng đối tượng event và không bao gồm mọi quá tải của phương thức bind.

1
$(document).ready(onResize); 
$(window).bind('resize', onResize); 

đã không làm việc với tôi.

Hãy thử

$(window).load('resize', onResize); 
$(window).bind('resize', onResize); 

để thay thế.

(Tôi biết câu hỏi này là cũ, nhưng google gửi cho tôi ở đây, vì vậy ...)

0

cách tiếp cận khác, bạn có thể chỉ đơn giản là thiết lập một handler, và giả mạo một sự kiện thay đổi kích thước bản thân:

// Bind resize event handler through some form or fashion 
$(window).resize(function(){ 
    alert('Resized!'); 
}); 

// Trigger/spoof a 'resize' event manually 
$(window).trigger('resize'); 
4

tôi nghĩ rằng giải pháp tốt nhất chỉ là để ràng buộc nó vào tải và thay đổi kích thước kiện:

$(window).on('load resize', function() { 
    // your code 
}); 
+0

Đây là câu trả lời đơn giản nhất của tất cả các –

+0

Điều này làm cho nó đơn giản và sạch sẽ. – jamesnotjim

Các vấn đề liên quan