preventDefault () no funciona

Cuando uso event.preventDefault () en un enlace funciona, sin embargo, cuando lo uso en un botón no.
MANIFESTACIÓN
mi código:

<code><a id="link" href="http://www.google.com">link</a>
<button id="button" onclick="alert('an alert')">button</button>​

$('#link').click(function(event){
  event.preventDefault();
});
$('#button').click(function(event){
  event.preventDefault();
});
</code>

La acción de enlace se cancela, pero cuando hago clic en el botón, todavía se ejecuta la acción onClick
¿Alguna ayuda? Lo que quiero hacer es prevenir el botón onClick actionsin cambiar el botón html (Yo sé cómo hacerlo

$('#button').removeAttr('onclick');

Respuestas a la pregunta(4)

Su respuesta a la pregunta