В любом случае, короткий код моей пользовательской функции?

0

У меня есть функция foo() и вы хотите вызвать ее в три раза ниже

function foo() {
  // function code goes here
}

foo();

$(window).resize(function() {
  setTimeout(function(){foo();}, 300);
});

$('#div').scroll(function() {
  setTimeout(function(){foo();}, 300);
});

Я хочу знать, есть ли короткий способ назвать это во всех трех ситуациях.

  • 0
    Нет, не совсем так, как вы используете разные элементы с разными событиями, здесь нет ярлыков.
  • 0
    выглядит довольно коротко для меня :)
Показать ещё 3 комментария
Теги:

2 ответа

1
Лучший ответ
function foo(delay) {
    setTimeout(function() {

        // function code goes here

    }, delay||300);
};

$(window).on('resize', foo);
$('#div').on('scroll', foo);

foo(0);
  • 0
    +1 То же самое, что и в другом ответе - нет необходимости заходить внутрь setTimeout, если задержка не определена.
  • 0
    @Shomz - проще использовать нулевое время ожидания, чем дважды определять код функции или дважды вызывать другую функцию и т. Д.?
Показать ещё 4 комментария
1

Если вы используете setTimeout с foo много, почему бы не переместить его внутри функции с дополнительным аргументом?

function foo(time) {
    time = time ? time : 0;    //default of 0
     setTimeout(function(){
          // function code goes here
    }, time);
}

foo();

$(window).resize(function() {
  foo(300);
});

$('#div').scroll(function() {
  foo(400);
});
  • 0
    +1 Хотя вы можете даже не заходить внутрь setTimeout, если время не определено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню