[WordPress] ことができます ' JS から t 呼び出し関数は、ワードプレスの html ファイル

スポンサーリンク

質問

簡単な要約: wp_enqueue_scripts のおかげで読み込まれている .js ファイルの機能があります。動作していない私のテンプレート ファイルの 1 つの HTML からその関数を呼び出すしようとすると、今

このを調査したし、私はすべての権利、それをしていますが、明らかに私は何かを見逃している必要があり、かなりそれが何に私の指を置くことができないと思う島


.

だから、functions.php、私は次のコードである:

function script_assets() {
    wp_enqueue_script( 'js-code', get_template_directory_uri() . '/js/js-code.js' );
}
add_action( 'wp_enqueue_scripts', 'script_assets' );

これ、意図したとおりに動作し、頭に追加されるこの結果:

<script type='text/javascript' src='http://.../js/js-code.js?ver=4.1.1'></script>

.

し、 header.php

wp_head();

後私は、次のビットを有するコード:

<?php if ( !is_front_page() ) : ?>
    <script type="text/javascript">
    /* <![CDATA[ */
        setTimeout(function(){ switchMobile($("#switcher")); }, 200);
    /* ]]> */
    </script>

<?php endif; ?>

スクリプト タグ、すべてのたびに私はないのフロント ページに意図したとおりの HTML に入る間、PHP のビットは、正しく動作します。Js code.js が上に貼り付けられますラインを介して読み込まれる後になります。

switchMobile()

js code.js の関数であるし、それが動作する知っているとは異なるコンテキストで問題無しでそれを使用する

しかし Chrome がスローされます。

キャッチ ReferenceError: switchMobile が定義されていない

関数が実行.

私は知っている ‘HTML から JS 関数を呼び出す方法」の質問は、数え切れない時間を求められているが多くのページを読んでてきたし、彼らはすべて言うように見える同じことのよう、手紙とそれに続いたきたまだ動作しません.

任意のアイデアですか?ありがとう

答え

domready イベント内部関数を入れてみてください、それおそらく js code.js が後に配置されているという事実にかかわらず読み込まれる前に実行されます:

jQuery(function ($) {   
    setTimeout(function(){ switchMobile($("#switcher")); }, 200);
});

http://stackoverflow.com/questions/29201195/cant-call-functions-from-a-js-file-in-html-in-wordpress

スポンサーリンク

Leave a Reply