未激发wp.Customize.Bind Ready事件

时间:2016-09-12 作者:Arcath

我正在尝试向我的主题定制器添加一些javascript。加载了我的JS文件没有问题,我的文档就绪事件可以工作,但是wp.customize.bind() 没有给我回电话。

jQuery(document).on(\'ready\', function(){
  console.log(\'binding\')
  wp.customize.bind(\'ready\', function(){
    console.log(\'ready\')
  })
})
binding 输出到控制台,但ready 没有。

我错过了什么?这里似乎几乎没有关于使用javascript的文档。

2 个回复
SO网友:Weston Ruter

不要放置自定义程序ready jQuery内部的事件处理程序event 处理程序。自定义程序ready 将在jQuery处触发ready, 因此,添加事件处理程序太晚了。只需执行以下操作:

wp.customize.bind(\'ready\', function(){
    console.log(\'ready\');
});
您的JS需要排队customize-controls 脚本作为其依赖项。在customize_controls_enqueue_scripts 行动

SO网友:Digvijayad

我也有同样的问题。它对我没有约束力的原因是我有这个错误"Uncaught TypeError: Cannot read property \'unsync\' of undefined" 在我的控制台上。

这是因为我删除了header_textcolor 使用主题模板中的设置$wp_customize->remove_setting( \'header_textcolor\' ); 但它仍在js中引用。

修复后,bind按预期工作。