javioreto Tiene razón, el evento "click" no se aplica al input porque aun no ha sido cargado en el DOM. Por esto de la segunda manera si funciona, ya el input ya está procesado...
Sin embargo, con jquery puedes definir que el evento sea aplicado al input una vez esté cargada toda la página. Así:
Código HTML:
<body>
<script type="text/javascript">
$(document).ready(function(){ //cuando el document este cargado completamente
$("#filter").click(function(){
alert('clicked!');
});
}); //-----
</script>
<div id="borradivf">hergregre</div>
<input type="button" id="filter" name="filter" value="Filter" />
</body>
</html>