Wordpress,媒体库弹出时初始化jQuery函数



我正在为我的主题定制一个标准的Wordpress图库。增加了一个选择缩略图边框颜色的选项(在图库设置列中),并尝试使用内置的Wordpress颜色选择器。下面是我初始化颜色选择器的方法:

(function( $ ) {
    $(function() {
        $('body').on('click', '.color-field', function() {
        $('.color-field').wpColorPicker();
        });
    });
})( jQuery );

这是我现在唯一能让它工作的方法。因为当Wordpress媒体弹出窗口打开时,颜色字段是动态添加的。但是现在只有在单击color field时才初始化它。我正在寻找一种方法来初始化颜色选择器时,媒体弹出加载。是否有任何Wordpress弹出回调可以使用?

这只是一个评论,但已经变得太大了,但这不是一个正确的答案:

这也是我正在努力整合到一个主题的东西。在你的情况下,最简单/最快的方法可能是将wpColorPicker的点击调用附加到调用媒体上传器的相同div标签上,或者你可以参考这是否可能听到"样式更改"。事件吗?并触发你的颜色选择器当$('#__wp-uploader-id-2')div的css显示'block'属性改变。第二种方法是扩展thickbox功能(上载程序位于thickbox中),以便在打开上载程序时进行回调。第三种方法是扩展媒体上传器的js功能,虽然我不熟悉这个。

如果它有帮助,从长远来看,我发现处理颜色选择器选项和布局控件是很多工作(我一次使用几个),最后发现并实现了这个:https://acko.net/blog/farbtastic-jquery-color-picker-plug-in/

update: found this from https://wordpress.stackexchange.com/questions/92415/image-upload-callback-in-new-3-5-media,它扩展了上传器的回调函数:

$.extend( wp.Uploader.prototype, {
    init : function(){
        console.log( 'uploader is initialised' );
        $('.color-field').wpColorPicker(); // not sure exactly when it initialises ?
    },
    success : function(filename){
        console.log( 'uploader has loaded: '+ filename );
        $('.color-field').wpColorPicker(); // or you might want to add the colorbox once a file is actually uploaded?
    },
});
好运

最新更新