jQuery объединяет .ready и .resize - PullRequest
16 голосов
/ 13 сентября 2011

Часть (ну, почти весь) моего кода, который находится в моей функции jQuery .ready, также применяется при изменении размера окна, так как это макетная работа.Однако, поскольку это один и тот же код, как я мог «объединить» две функции, чтобы мой код не повторялся (и не мешал поддерживать)?

Спасибо!

Ответы [ 3 ]

47 голосов
/ 13 сентября 2011
$(document).ready(myfunction);
$(window).on('resize',myfunction);

function myfunction() {
    // do whatever
}

Другая техника заключается в .trigger() одном событии внутри другого:

$(window).on('resize',function() {
    // do whatever
});
$(document).ready(function() {
    $(window).trigger('resize');
});

Если вы поместите свой код внизу страницы, чтобы избежать необходимости $(document).ready, это станет еще проще:

$(window).on('resize',function() {
    // do whatever
}).trigger('resize');
8 голосов
/ 07 августа 2015

Еще один лучший вариант

$(window).on("load resize",function(e){
  function abc() {
    // code here
  }
});
7 голосов
/ 13 сентября 2011

Как то так ??

function mySetupFunction() {
    // stuff here.
}

$(document).ready(mySetupFunction);
$(window).resize(mySetupFunction);
...