WpColorPicker不是一个函数!

时间:2013-08-25 作者:rram

我尝试在插件管理区域使用虹膜颜色选择器,但当我实现时,出现了以下错误-

类型错误:$(…)。wpColorPicker不是functionCode-

function sam()
{
wp_enqueue_style( \'wp-color-picker\');
wp_enqueue_script( \'wp-color-picker\');
}
add_action( \'admin_enqueue_scripts\', \'sam\' );


<!--HTML-->

<input type="text" value="#bada55" class="ir" />

<!--SCRIPT-->

 <script type="text/javascript">
        jQuery(document).ready(function($){
    $(\'.ir\').wpColorPicker();
});
        </script>
为什么我会发现这个错误?有什么线索吗?我哪里做错了?

6 个回复
SO网友:Vinod Dalvi

之所以会发生这种情况,是因为您在加载wp color picker脚本之前调用wpColorPicker函数,所以为了克服这种情况,请在加载wp color picker脚本之后调用wpColorPicker()函数,方法是在js文件中添加以下脚本。在本例中,我将其添加到wp color picker脚本中。js。

jQuery(document).ready(function($){
    $(\'.ir\').wpColorPicker();
});
然后使用admin\\u enqueue\\u scripts操作将wp color picker脚本排队,并添加wp color picker作为其依赖项,如以下代码所示。

add_action( \'admin_enqueue_scripts\', \'wp_enqueue_color_picker\' );
function wp_enqueue_color_picker( $hook_suffix ) {
    wp_enqueue_style( \'wp-color-picker\' );
    wp_enqueue_script( \'wp-color-picker\');
    wp_enqueue_script( \'wp-color-picker-script-handle\', plugins_url(\'wp-color-picker-script.js\', __FILE__ ), array( \'wp-color-picker\' ), false, true );
}

SO网友:Asha Krishna

尝试像这样更改代码。。希望它能起作用

function sam()
{

wp_enqueue_script(\'wp-color-picker\', plugins_url(\'wp-color-picker-script.js\', __FILE__ ), array( \'farbtastic\' ), false, true );

}
add_action( \'admin_enqueue_scripts\', \'sam\' );
在模板中

<div class="color-picker" style="position: relative;">
<input type="text" value="#bada55" class="ir" id="color" />
  <div style="position: absolute;" id="colorpicker"></div>
</div>
在js文件中(wp color picker script.js)

jQuery(document).ready(function($) {
$(\'#colorpicker\').hide();

$(\'#colorpicker\').farbtastic(\'#color\');
if ( $("#color").val().length === 0 )
    {
    var input = $( "#color" );
     input.val( input.val() + "#ffffff" );
    }
$(\'#color\').click(function() {
    $(\'#colorpicker\').fadeIn();
});

$(document).mousedown(function() {
    $(\'#colorpicker\').each(function() {
        var display = $(this).css(\'display\');
        if ( display == \'block\' )
            $(this).fadeOut();
    });
});
});

SO网友:majick

另一个可能的原因是script_loader_tag, 这就是发生在我身上的事。

在本例中,脚本已正确排队,但此筛选器正在完全删除脚本标记,因此根本没有加载它,因此提供wpColorPicker不是函数控制台错误。

以防有人有同样的问题

SO网友:Harrie

// add wpColorPickerL10n repair
<?php
    if( is_admin() ){
    add_action( \'wp_default_scripts\', \'wp_default_custom_scripts\' );
    function wp_default_custom_scripts( $scripts ){
        $scripts->add( \'wp-color-picker\', "/wp-admin/js/color-picker.min.js", array( \'iris\' ), false, 1 );
        did_action( \'init\' ) && $scripts->localize(
            \'wp-color-picker\',
            \'wpColorPickerL10n\',
            array(
                \'clear\'            => __( \'Clear\' ),
                \'clearAriaLabel\'   => __( \'Clear color\' ),
                \'defaultString\'    => __( \'Default\' ),
                \'defaultAriaLabel\' => __( \'Select default color\' ),
                \'pick\'             => __( \'Select Color\' ),
                \'defaultLabel\'     => __( \'Color value\' ),
            )
        );
    }
}
?>
我的职能中有这一点。子主题的php。

SO网友:Md. Jahidul Islam

只需调用wp颜色选择器脚本,无需创建函数:

wp_enqueue_style( \'wp-color-picker\' );
wp_enqueue_script( \'my-script-handle\', plugins_url(\'js/my-script.js\', __FILE__ ), array( \'wp-color-picker\' ), false, true );

SO网友:phppoet

显示此错误是因为script_debug 已设置为启用。关掉它。

define(\'SCRIPT_DEBUG\', false);
我知道这不是一个好的解决办法,但我找不到另一种解决办法。看起来像wp核心中的bug。

结束

相关推荐