Quando quero impedir que outros manipuladores de eventos sejam executados após um determinado evento ser disparado, posso usar uma das duas técnicas. Vou usar o jQuery nos exemplos, mas isso também se aplica ao JS simples:
1 event.preventDefault()
$('a').click(function (e) {
// custom handling here
e.preventDefault();
});
2) return false
$('a').click(function () {
// custom handling here
return false;
});
Existe alguma diferença significativa entre esses dois métodos para interromper a propagação de eventos?
Para mim, return false;
é mais simples, mais curto e provavelmente menos propenso a erros do que executar um método. Com o método, você deve se lembrar sobre invólucro, parênteses etc.
Além disso, eu tenho que definir o primeiro parâmetro no retorno de chamada para poder chamar o método. Talvez, existam algumas razões pelas quais eu deveria evitar fazê-lo dessa maneira e usá-lo preventDefault
? Qual é a melhor maneira?
preventDefault
que não impede que outros diretos de execução. É para isso questopImmediatePropagation
serve.