为什么ajax_object.ajax_url一直说未定义

时间:2016-06-18 03:57:15

标签: jquery ajax wordpress

我是wordpress的新手。我在jquery中创建了一个on change事件,将我的脚本排入队列并对其进行了本地化。

当我在on change事件中输出ajax_object.ajax_url到控制台时,它一直说未定义。但当我将它输出到ajax_object到控制台时,我得到了这个

["ajax_url", "http://localhost/wordpress/wp-admin/admin-ajax.php"]

当我使用ajax_object.ajax_url时,我不明白为什么它说undefined,它真的很奇怪。以下是我正在使用的代码。任何帮助都会非常感激

function myEnqueue($hook){

    if("post.php" != $hook && "post-new.php") { return; };

    wp_enqueue_script("ajax-script",plugins_url("/js/meta.js",__FILE__),["jquery"]);
    wp_localize_script("ajax-script","ajax_object",["ajax_url",admin_url("admin-ajax.php")]);
}


add_action("admin_enqueue_scripts","myEnqueue");

Javascript代码

jQuery(document).ready(function ($) {

    $("#my_plugin_field").change(function() {//the selector and event
          console.log(ajax_object);

    });

    });

2 个答案:

答案 0 :(得分:0)

更改此行

wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );

答案 1 :(得分:0)

wp_localize_script('ajax-script', 'ajax_object', array('ajax_url' => admin_url('admin-ajax.php')));

或者,如果您想使用5.4 + array语法

wp_localize_script('ajax-script', 'ajax_object', ['ajax_url' => admin_url('admin-ajax.php')]);