0

我正在尝试使用以下代码来计算 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,但控制台显示 Uncaught ReferenceError: ajaxurl is not defined ,即使播放 HTML5 音频,第二个 console.log 也没有显示,也没有发送 ajax!

我究竟做错了什么?

4

1 回答 1

0

我没有在这台机器上安装一个空的 WP 来测试,所以请原谅我在这里猜测,但是我在前一周调试类似问题时确实尝试了一些事情:

  1. 你能console.log在绑定处理程序中做其他事情吗?查看处理程序是否真的在触发。
  2. 在您声明此绑定后,是否还有其他代码可以解除您的侦听器的绑定?
  3. 您是否尝试过使用window.ChurchAdminAjax.ajaxurl或分配ChurchAdminAjax.ajaxurl给局部变量(在就绪处理程序内)并使用它?

当然,最后一个有点远,但你永远不会知道。

于 2013-11-04T05:30:31.717 回答