Separando Javascript do HTML até demais
É interessante notar como alguns programadores seguem padrões com afinco, até as últimas consequências, onde houver código lá está ele impondo todos os padrões possíveis. Existe a boa prática em separar comportamento e apresentação, no caso de páginas HTML, os arquivos javascript são o comportamento e os arquivos CSS a apresentação, e o HTML faz uso de ambos, como pode ser observado aqui.
Observem o exemplo:
-
<input type="button" value="botão" id="meuBotao" onclick="meuEventoAqui()">
Algo que tem-se pregado por aí é retirar o totalmente o Javascript do HTML, ou seja, o exemplo acima ficaria assim:
-
<input type="button" id="meuBotao" value="botão">
E teríamos um arquivo .js com o seguinte código para ligar o evento onclick do button:
-
function ligacaoDeEventos() {
-
var botao = document.getElementById('meuBotao');
-
botao.onclick = function() {
-
finalmenteMeuEventoAqui();
-
}
-
}
-
window.onload = ligacaoDeEventos;
Puxa vida, toda essa volta só para não usar a propriedade onclick no HTML e se livrar totalmente do Javascript, isso vale a pena ?
Há vários motivos para que eu não concorde com isso:
- Mais código para dar manutenção, foram criadas várias linhas de javascript para algo que funcionaria no primeiro exemplo usando a propriedade onclick da tag input.
- E quando eu quiser saber qual evento o button aciona, será fácil de achar ? Podem haver vários objetos na página, todos com seus eventos ligados apenas no momento do onload da página. Vários objetos é igual a várias linhas de código javascript com as ligações, se você estiver usando um editor de textos comum, bem... boa sorte, e mesmo com uma IDE não é tão simples assim.
- A propriedade onclick, onkeypress, etc faz parte da especificação HTML, justamente para facilitar isso, porque iria deixar de usá-los ?
Então muito cuidado ao seguir padrões ao extremo, questione-os, cada um tem o seu lugar e hora certa.
