A resposta de Tatu é como eu o faria intuitivamente, mas tive alguns problemas no Internet Explorer com essa maneira de aninhar / vincular os eventos, mesmo que isso seja feito através do .on()
método.
Não consegui identificar exatamente com quais versões do jQuery esse é o problema. Mas às vezes vejo o problema nas seguintes versões:
- 2.0.2
- 1.10.1
- 1.6.4
- Mobile 1.3.0b1
- Móvel 1.4.2
- Mobile 1.2.0
Minha solução alternativa foi definir primeiro a função,
function myFunction() {
...
}
e depois manipular os eventos individualmente
// Call individually due to IE not handling binds properly
$(window).on("scroll", myFunction);
$(window).on("resize", myFunction);
Essa não é a solução mais bonita, mas funciona para mim, e eu pensei em divulgá-la para ajudar outras pessoas que possam se deparar com esse problema.
.on('keyup.foo keypress.foo blur.foo change.foo', …)
ou.on('keyup keypress blur change .foo', …)
?