jQuery diferença entre mudança e clique em evento de checkbox

Como o título sugere, eu quero saber a diferença entre a change e o evento click da checkbox de seleção (em jQuery)

Eu li a resposta para isso Qual a diferença entre .click e .change em uma checkbox de seleção

Mas, não está funcionando para mim. change disparos mesmo quando eu atingir espaços sem perder o foco.

Aqui está uma demonstração de violino

Ambos parecem estar funcionando da mesma forma. Estou faltando alguma coisa aqui?

    De acordo com o W3C, o evento onclick é acionado pelo teclado para fins de acessibilidade:

    SCR35: Tornando o teclado de ações acessível usando o evento onclick de âncoras e botões

    Para fornecer uma experiência de usuário melhor para aqueles sem o uso de um mouse, os navegadores foram desenvolvidos para triggersr o evento onclick , mesmo se o clique ocorrer com um teclado.

    Por esse motivo, o evento click do jQuery será acionado mesmo que a checkbox de seleção seja clicada usando a barra de espaço do teclado. change , obviamente, irá triggersr toda vez que o estado da checkbox de seleção mudar.

    A checkbox de seleção é o caso especial em que a change e o click são intercambiáveis, porque você não pode triggersr o evento de change sem triggersr o click .

    Naturalmente, a exceção a essa regra é se você usar o javascript para alterar manualmente a checkbox de seleção, como:

     /* this would check the checkbox without firing either 'change' or 'click' */ $('#someCheckbox').prop('checked',true); /* this would fire 'change', but not 'click'. Note, however, that this does not change the checkbox, as 'change()' is only the function that is fired when the checkbox changes, it is not the function that does the changing */ $('#someCheckbox').trigger('change'); /* this would fire 'click', which by default automatically triggers 'change' */ $('#someCheckbox').trigger('click'); 

    Aqui está uma demonstração dessas ações diferentes: http://jsfiddle.net/jackwanders/MPTxk/1/

    Espero que isto ajude.

    A principal diferença: quando você clica / acerta o espaço em uma checkbox de seleção focalizada, primeiro o evento de click triggersdo, sem alterações. Nesse ponto, você ainda pode impedir a ação padrão (com event.preventDefault() ), que seria alternar o estado checked dessa checkbox de seleção e acionar o evento de change (que não tem ação padrão).

    Em alguns navegadores, o evento de alteração será acionado somente após o primeiro blur após o click .

    Eu diria que a mudança é acionada quando a checkbox de seleção é alterada (mesmo que você não clique nela). Por exemplo, se você alterar o estado da checkbox de seleção através de alguma outra function.

    você pode marcar ou desmarcar a checkbox de seleção sem clicar, usando o teclado (barra de abas e espaço), isso vai mudar a declaração, mas não clicar. Na minha humilde opinião

    Por favor, deixe-me saber se isso não ajuda eu vou remover o meu post:

    Change : http://api.jquery.com/change/ – Eu acho que o evento change é acionado quando o state do elemento é alterado, isto é, não é clicado, mas alterado. A checkbox de seleção está marcada e desmarcada.

    Click : clique em evento é quando você clica no elemento não importa qual será o estado da checkbox de seleção.

    como no pseudo código

     if checkbox state is checked alert(Hulk is awesome); if checkbox is click every time alert(Ironman is alright); 

    A diferença que experimentei é esta:

     var $check = $(':checkbox'); $checkbox.checked = true; $checkbox.click( function() { alert(this.checked); // true }).change( function() { alert(this.checked); // false }); 

    Então, com o clique o estado ainda não mudou, com a mudança que tem …

    O evento de mudança é acionado quando o status da checkbox de seleção foi alterado por meio de qualquer ocorrência que ocorrerá ao pressionar espaço quando a checkbox de seleção foi focada ou acionada por evento de mudança ou clicada em como o evento Click foi acionado somente quando clicamos na checkbox de seleção esse tempo antes de clicar se o evento de mudança foi especificado, então ele também é executado e, em seguida, executar o evento click.

    Aqui você pode ver que o script claro foi feito em checkboxs: http://codebins.com/codes/home/4ldqpbu