SEQUE seu uso de event.preventDefault () do jQuery

Se você achar que seu código jQuery está usando event.preventDefault()o tempo todo, pode secar esse código usando combinadores de método. Há uma ótima biblioteca que você pode usar aqui .

Que tal um exemplo:

var preventer = before(function (event) {
event.preventDefault();
alert
('Preventing Default Behaviour');
});

var handleClick = function () {
alert
($(this).attr("href"));
};

$
("#link").click(preventer(handleClick));

Então, o que está acontecendo aqui? Se você não está familiarizado com combinadores de método (também conhecidos como decoradores de método), isso pode parecer um pouco estranho para você.

A primeira linha de código define uma nova função, chamada preventer, que envolverá o event.preventDefault()em uma função reutilizável. Eu adicionei um alertlá para que você possa ver onde isso acontece na pilha de chamadas ao testá-lo.

Você notará que, ao definir preventer, usei uma função chamada before. A beforefunção vem direto da biblioteca de combinadores de métodos mencionada acima. É aqui que a mágica acontece. A beforefunção aceita uma função como parâmetro e retorna uma nova função como resultado. A função resultante, neste caso preventer, aceita ela própria uma função que é considerada o código principal a ser executado. O que preventerfaz é executar a função passada para before antes de executar o código passado para si mesmo.

Depois de entender isso, você entenderá como a função before envolve a função. Espero que seja mais fácil de entender do que escrever!

Confira em ação, com este jsFiddle