正在检测WordPress定制器面板

时间:2016-05-10 作者:user892670

最近开始开发Wordpress主题,这在很大程度上依赖于定制器API。

我一直坚持的一件事是检测特定面板何时被单击或打开。

常规的旧“点击”事件不起作用。

在另一个面板中,我有多个控件,我可以通过以下方式检测其中的表单元素何时发生更改:

api.controlConstructor.typography = api.Control.extend( {
    ready: function() {
        var control = this;
        control.container.on( \'change\', \'.typography-font-weight select\',
            function() {
                control.settings.font_weight.set( $( this ).val() );
            }
        );
        control.container.on( \'change\', \'.typography-font-style select\',
            function() {
                control.settings.font_style.set( $( this ).val() );
            }
        );
    }
});
如果我运行console.log(control);

但我无法找出如何检测特定面板何时打开。

任何关于听众的信息或建议或诸如此类的东西都将不胜感激!

我还应该提到,这个脚本驻留在定制器中。我正在排队使用的js脚本customize_controls_enqueue_scripts 行动

1 个回复
SO网友:WPExplorer

不确定这有多优化,但我相信这会奏效:

    $( \'#widgets-right\' ).delegate( \'#customize-theme-controls\', \'DOMNodeInserted\', function( ev ) {
        $( \'.control-section\' ).click( function() {
            // Do stuff
        });
    } );