Как заставить эту функцию работать не только при изменении размера окна, но и при начальной загрузке страницы?
$(window).resize(function() {
...
});
Как заставить эту функцию работать не только при изменении размера окна, но и при начальной загрузке страницы?
$(window).resize(function() {
...
});
Вы захотите использовать:
$(document).ready(function() { /* your code */ });
Чтобы что-то произошло на загрузке. Если вы хотите, чтобы что-то работало при загрузке и изменении размера, вы должны сделать:
onResize = function() { /* your code */ }
$(document).ready(onResize);
$(window).bind('resize', onResize);
Я думаю, что лучшее решение — просто привязать его к событию загрузки и изменения размера:
$(window).on('load resize', function () {
// your code
});
Такое поведение является особенностью.
Вы должны поместить свой код в именованную функцию, а затем вызвать функцию.
Например:
function onResize() { ... }
$(onResize);
$(window).resize(onresize);
В качестве альтернативы вы можете сделать плагин для автоматического связывания и выполнения обработчика:
$.fn.bindAndExec = function(eventNames, handler) {
this.bind(eventNames, handler).each(handler);
};
$(window).bindAndExec('resize', function() { ... });
Обратите внимание, что это не будет работать правильно, если обработчик использует объект event
, и что он не покрывает каждую перегрузку метода bind
.
$(document).ready(onResize);
$(window).bind('resize', onResize);
со мной не работал.
Пытаться
$(window).load('resize', onResize);
$(window).bind('resize', onResize);
вместо.
(Я знаю, что этот вопрос старый, но Google отправил меня сюда, так что...)
Другой подход: вы можете просто настроить обработчик и самостоятельно подделать событие изменения размера:
// Bind resize event handler through some form or fashion
$(window).resize(function(){
alert('Resized!');
});
// Trigger/spoof a 'resize' event manually
$(window).trigger('resize');