定制器绑定jQuery创建的控件

时间:2020-11-09 作者:Lingo

我尝试了WestonRuter发布的几个插件,用于jQuery为WP定制器创建控件。它们可以工作,但与通过PHP创建的不同。例如,使用PHP创建的控件(customizer.php) 正常响应代码输入customize-controls.js 或在中customize-previews.js:

api( \'tzkmx_test_control\', function( value ){
    value.bind( function( to ) {
        var answer = to;
    });
});
使用jQuery创建的控件不响应绑定!有人知道怎么做吗to bind 他们

2 个回复
SO网友:Lingo

谢谢汤姆,

示例:

只需下载插件WPSE 286375: A dynamic dropdown-pages control 从…起here:

提取wp插件文件夹中的下两个文件:(wp内容/插件)

wpse-286375-controls.js and 
wpse-286375.php
  • 激活WPSE 286375插件

    进入wp仪表板/自定义/主页设置

    有2个控件-主页和贴子页面,带有控件ID"page_on_front""page_for_posts"

    第三个控件-具有控件ID的特色页面(来自激活的插件)"special_page"

    它是使用wpse-286375-controls中的jQuery创建的。js通过:

    component.addControl = function() {
    api.control.add( new api.Control( \'special_page\', _.extend(
      {},
      component.defaultParams,
      {       type: \'dropdown-pages\',
              section: \'static_front_page\',
      }) ) );};
    
    将工作项目中的下一个代码复制到文件自定义控件中。js和使用chrome/firefox进行调试:

    wp.customize(\'page_on_front\', function( value ) {
              // Listen to value changes.
                       value.bind( function( to ) {
                                var answer = to;
                 });});
    
    尝试更改主页控件中的某些内容,瞧bind works 我们可以看到主页的页面ID。

    现在只更改特色页面的ID:

       wp.customize(\'special_page\', function( value ) {                                
    // Listen to value changes.                                                       
         value.bind( function( to ) {                                                 
                  var answer = to;                                                     
       });});
    
  • 尝试更改特色页面控件中的内容->;没有束缚,什么也不会发生!

    SO网友:Lingo

    这是5ervant\'ssolution 我发现:

         parent.wp.customize.control( \'special_page\', function( control ) {
                 control.setting.bind( function( to ) {
                                    var answer = to;
         });});
    
    谢谢!

    相关推荐