web-dev-qa-db-fra.com

wp.customize.bind événement prêt non déclenché

J'essaie d'ajouter du javascript à mon personnalisateur de thème. Mon fichier JS est chargé sans problème et mon événement document ready fonctionne mais wp.customize.bind() n'appelle pas mon rappel.

jQuery(document).on('ready', function(){
  console.log('binding')
  wp.customize.bind('ready', function(){
    console.log('ready')
  })
})

binding est envoyé à la console, mais pas ready.

Qu'est-ce que je rate? il semble y avoir peu ou pas de documentation sur l’utilisation du javascript ici.

6
Arcath

Ne placez pas le gestionnaire d'événements Customizer ready dans le gestionnaire jQuery event. Le personnalisateur ready se déclenchera à jQuery ready, de sorte que vous ajoutez le gestionnaire d'événements trop tard. Il suffit de faire:

wp.customize.bind('ready', function(){
    console.log('ready');
});

Votre JS doit être mis en file d'attente avec le script customize-controls en tant que dépendance. En file d'attente à l'action customize_controls_enqueue_scripts.

2
Weston Ruter

J'ai eu le même problème. La raison pour laquelle il n'était pas contraignant pour moi était parce que j'avais l'erreur "Uncaught TypeError: Cannot read property 'unsync' of undefined" sur ma console.

Cela est dû au fait que j'ai supprimé les paramètres header_textcolor du modèle de thème à l'aide de $wp_customize->remove_setting( 'header_textcolor' );, mais il était toujours référencé dans le fichier js.

Après avoir corrigé cela, bind a fonctionné comme prévu.

0
Digvijayad