无法将JS变量回显到来自wp_LOCALIZE_SCRIPT的jQuery插件

时间:2013-08-02 作者:Daniel

Short version: 我能够使用wp\\u localize\\u脚本将一个PHP变量放入JS文件中。在JS文件中,我可以使用控制台回显变量。日志,但我无法将其回显到jQuery插件的选项中。

Long version:

<插件短代码。

public function slider_shortcode($atts) {

    $data = shortcode_atts ( 
        array(
            \'slideshow\' => \'\',
            \'responsive\' => \'\',
        ), 
        $atts 
    );

    $slideshow_att = $data[\'slideshow\'];

    // DEBUG -> IT WORKS. I can see $responsive value on the page.
    print_r($data[\'responsive\']);


    ob_start();
    $my_slider( $slideshow=$slideshow_att );    
    $my_slider_content = ob_get_clean();

    wp_enqueue_script( $this->plugin_slug . \'-public-script\', plugins_url( \'assets/js/public.js\', __FILE__ ), array( \'jquery\' ), $this->version, TRUE);
    wp_localize_script(
            $this->plugin_slug . \'-public-script\',
            \'myScriptObject\',
            $data
        );



    return $my_slider_content;
}
输出JS文件。

(function ($) {
    "use strict";

    $(window).load(function () {

        var $resp = myScriptObject.responsive;

        // DEBUG -> IT WORKS. I CAN SEE THE SHORTCODE VALUE.
        console.log($resp);

        $(\'.my-slider\').SuperSlider({
            \'fullWidth\': true,
            \'responsive\': $resp, // <<-- HERE IS PROBLEM. IT NEVER CHANGES.
            \'dimensions\': \'900,300\',
          });
    });
}(jQuery));
短码

[myslider responsive=true]

  • 使用print_r($data[\'responsive\'])console.log($resp). 但出于某种原因responsive: $resp do not change!

    我在这里错过了什么?

  • 1 个回复
    最合适的回答,由SO网友:Daniel 整理而成

    使用@Milo的见解回答。

    结束

    相关推荐

    通过jQuery复选框显示Meta Box

    我一直在玩弄Jquery和PHP,我正试图为一支运动队建立一个网站。我创建了一个名为“匹配”的自定义帖子类型,并在其中创建了两个自定义元框。一个用于比赛细节(即主客场)和一个用于比赛统计(进球、投篮等)。我目前拥有的是一个(这个游戏完成了吗)复选框,它在元框详细信息(#dw\\u match\\u Details)中显示/隐藏统计选项(位于Div#meta\\u box\\u stats中)。复选框数据值正在保存,但功能不太正常。如果在加载后将其选中为完成编辑,并且该值设置为“开”,那么当我尝试编辑帖子时