Personalizador: triggersdor sincronizado triggers duas vezes

Acabei de notar que o widget-synced é acionado duas vezes quando você está tentando editar um widget, clicar em um campo de texto, escrever algo, triggersr o widget-synced uma vez e depois disso, se você clicar em outro lugar, ele triggers pela segunda vez.

insira a descrição da imagem aqui

Este comportamento padrão e pode ser evitado em um widget personalizado?

Obrigado!

Pinging @WestonRuter

Solutions Collecting From Web of "Personalizador: triggersdor sincronizado triggers duas vezes"

A razão para isso é que o widget executará sua lógica de atualização no keydown e também na change para um determinado elemento de input . Consulte https://github.com/WordPress/wordpress-develop/blob/4.7.2/src/wp-admin/js/customize-widgets.js#L891-L907

Há algumas compensações feitas quando os widgets foram adicionados ao personalizador para levar essas interfaces orientadas por PHP para um contexto orientado por JS. Não foi perfeito e, portanto, isso faz parte do motivo do plugin do recurso JS Widgets , para modernizar a forma como os widgets personalizados são implementados no customizador.

Se você quiser simplesmente ouvir apenas quando um widget realmente muda seu estado, então você pode escutar a alteração de setting subjacente do controle. A configuração só será atualizada após uma determinada chave e evento de change subseqüente.

Eu meio que consegui corrigi-lo, não sei se é o caminho certo, isto é no caso de campos classificáveis, usando o evento de parada e verificar se o botão “Aplicar” está dentro do widget: https://jsfiddle.net/ 6h5t5r6y