【问题标题】:Preventing Error when using jQuery Spectrum Color Picker to Call an Ajax function使用 jQuery Spectrum Color Picker 调用 Ajax 函数时防止错误
【发布时间】:2021-08-06 15:54:35
【问题描述】:

我正在使用 jQuery Spectrum 并尝试在颜色更改时调用另一个函数。

然而,另一个函数有一个 ajax 调用,当它运行时,我得到这个错误:

spectrum.js?ver=1.0.7:1277 Uncaught TypeError: Cannot read property 'getBrightness' of undefined

我认为这与调用的同步性有关,但不确定如何解决。

            jQuery('#mydiv').spectrum({
                preferredFormat: "rgb",
                showAlpha: true,
                showPalette: true,
                showInitial: true,

                showSelectionPalette: true,
                palette: ['rgba(0, 0, 0, 0)'],
                showInput: true,
                allowEmpty: true,
                move: function(c) {

                 my_function(c);


                },
                change: function(c) {

                  my_function(c);

                }
            });

那么我调用的函数是这样的:

function my_function(color) {



        jQuery.ajax({
            url: '/wp-admin/admin-ajax.php',
            type: 'POST',
            datatype: 'JSON',
            data: {
                action: 'update_data',
                color: color,
          
            },
            success: function(data) {

              


            }

        });


}

我可以做些什么来使它正常工作吗?

这是一个提供错误的 JSFiddle:

https://jsfiddle.net/xstatic/8px3ynq0/11/

【问题讨论】:

    标签: jquery spectrumjs


    【解决方案1】:
    $(document).ready(function() {
      $('#custom').spectrum({
        preferredFormat: "rgb",
        showAlpha: true,
        showPalette: true,
        showInitial: true,
        showSelectionPalette: true,
        palette: ['rgba(0, 0, 0, 0)'],
        showInput: true,
        allowEmpty: true,
        change: function(color) {
          console.log(color.toRgbString());
        }
      })
    });
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.0.7/spectrum.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.0.7/spectrum.min.js"></script>
    <input type='text' id="custom" />
    

    这是一个使用 ajax 调用作为 jsfiddle 的工作示例:https://jsfiddle.net/bogatyr77/npekLc20/4/

    【讨论】:

    • 嗨@Bernhard。不,这不是 Wordpress ajax 问题。我添加了一个指向 JSFiddle 的链接,该链接使用他们的 AJAX 解决方案重新创建错误,并且触发了相同的错误。
    • 为你做了一个 JSFiddle。现在没有错误了,ajax 可以工作了。 jsfiddle.net/bogatyr77/npekLc20/3
    • 啊。不是ajax。是 toRgbString()。添加了它并且它起作用了。如果您想修改答案,我会批准。 :)。谢谢!
    • 修改了我的答案并添加了 JSFIDDLE。请检查问题是否已回答或投票。所以我会得到一些积分:-) THX
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 2013-01-13
    相关资源
    最近更新 更多