为什么我的ajaxurl变量显示为未定义?

时间:2013-11-03 23:10:04

标签: javascript jquery ajax wordpress

我正在尝试使用以下代码来计算在wordpress插件中的ajax-counter.js中的mp3播放

jQuery(document).ready(function($) {
    console.log(ChurchAdminAjax.ajaxurl);
    $("audio").bind("play", function(){
        console.log(ChurchAdminAjax.ajaxurl);
        var data = {action: "play_count",file_id: $(this).attr("id")};
        $.post(ChurchAdminAjax.ajaxurl, data);
    });
});

我已使用以下内容对该脚本进行入队和本地化

wp_enqueue_script( 'ca-ajax-request', CHURCH_ADMIN_INCLUDE_URL. 'ajax-counter.js', array( 'jquery' ) )
wp_localize_script( 'ca-ajax-request', 'ChurchAdminAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );

第一个console.log成功显示ajaxurl,但控制台正在显示 未捕获的ReferenceError:未定义ajaxurl 即使播放HTML5音频,第二个console.log也不显示,并且没有发送ajax!

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我没有在这台机器上安装空的WP进行测试,请原谅我在这里猜测,但有些事情我在其他一周调试类似问题时尝试过:

  1. 您是否能够console.log绑定处理程序中的任何其他内容?查看处理程序是否实际正在触发。
  2. 在声明此绑定后,是否会有其他代码解除对侦听器的绑定?
  3. 您是否尝试使用window.ChurchAdminAjax.ajaxurl或将ChurchAdminAjax.ajaxurl分配给本地变量(在就绪处理程序内)并使用它?
  4. 当然,最后一个是有点远视但你永远不会知道。