O botão desativado ainda escuta o evento de clique

Eu tenho um problema de uma forma em que faço algumas validações de jquery. Se um campo de entrada específico não for preenchido, ele deverá desativar o botão "avançar" adicionando um atributo desativado:

if errors
  $('.btn-move-forward').attr("disabled", true)

que funciona, mas também tenho um evento de clique nesse botão: (coffeescript)

$('.btn-move-forward').click ->
  $('#step2, #step3').toggle()

eu espero.btn-move-forward para não acionar o evento click quando o botão estiver desativado, mas ele faz !!

Primeiro: não entendo o porquê, porque todas as especificações do navegador definem que isso não deve acontecer. Enfim, tentei ignorá-lo, fazendo o seguinte:

$('.btn-move-forward').click ->
  if !$(this).is(:disabled)
    $('#step2, #step3').toggle()

ou isto

$('.btn-move-forward').click ->
  if $(this).prop("disabled", false)
    $('#step2, #step3').toggle()

ou combinando os ouvintes do evento assim:

$('.btn-move-forward').on 'click', '.btn-move-forward:enabled', ->
   $('#step2, #step3').toggle()

Não, tudo isso não funcionará corretamente. O botão ainda se comporta como um botão avançar.

Tudo o que eu quero é o botão que não está ouvindoonclick se estiver desativado.

questionAnswers(4)

yourAnswerToTheQuestion