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 オーディオが再生されても 2 番目の console.log は表示されず、ajax は送信されません!

私は何を間違っていますか?

4

1 に答える 1

0

このマシンにはテスト用の空の WP がインストールされていないので、ここで推測することをお許しください。

  1. console.logbind ハンドラ内で他に何かできることはありますか? ハンドラーが実際に起動しているかどうかを確認します。
  2. このバインディングを宣言した後、リスナーのバインドを解除する他のコードがある可能性はありますか?
  3. window.ChurchAdminAjax.ajaxurlローカル変数 (ready ハンドラー内) を使用または割り当ててChurchAdminAjax.ajaxurl、代わりにそれを使用しようとしましたか?

確かに、最後の 1 つはちょっと大当たりですが、わかりません。

于 2013-11-04T05:30:31.717 に答える