on
может использоваться для подключения событий изменения размера и готовности, как и любое другое событие.
Таким образом, для вашего случая вы можете создать функцию с кодом, который вы хотите использовать для resize
и ready
, а затем передать его обоим вызовам на on
.
Если вы хотите поддерживать чистоту вмещающей области, вы можете сделать все это в сразу выполняющейся функции:
(function() {
function stuffForResizeAndReady(){
// Stuff in here happens on ready and resize.
}
$(window).on("resize", stuffForResizeAndReady);
$(document).on("ready", stuffForResizeAndReady);
})();
2012-07-25 : ЕстьПри использовании .on()
для добавления готовых обработчиков следует помнить о 2 различиях:
Обработчики готовности, добавленные с помощью $(fn)
и $(document).ready(fn)
, запускаются «ретро», а добавленные .on()
нет.Используя их, если вы добавите обработчик после того, как DOM уже загружен, fn будет запущен немедленно.Если вы добавите обработчик через .on('ready', fn)
после загрузки DOM, jQuery будет запускать не , но вы можете .trigger('ready')
вручную.
Когда вы используете $(fn)
или $(document).ready(fn)
для добавления обработчика готовности, fn получает jQuery в качестве 1-го аргумента, позволяяСемейное jQuery(function($){ })
использование.Если вы используете $(document).on('ready', fn)
, 1-й аргумент, который получает fn, - это объект события .В обоих случаях this
внутри fn является document
.Если бы вы сделали что-то ненормальное, например, $('#foo').on('ready', fn)
для запуска, this
был бы элементом #foo
.