質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.12%

jQuery(setTimeout)が動きません...。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,538

SeijiFukuda

score 11

jQuery初心者です。
jQueryでsettimeoutを使って、時間差で.ttl-areaにanimeと言うクラスを付与したいのですが「Paused on exception ReferenceError: $ is not defined」というエラーが出て来てしまいjQueryが実行されません。

<script>
    setTimeout(function(){
         $(".ttl-area").addClass("anime");
    },2000);
</script>

エラー内容
イメージ説明

CMSはWordpress4.9.3を使用しています。テーマはオリジナルです。
アナリティクスとアドセンスのコードを少し読み込んでいるくらいで特殊なコードは書き込んでいないと思います。

解決しようと下記の方法を試してみたのですが、同じようなエラーが出て来ます。
・$をjqueryに書き換える
・jquery-2.2.3を使用しているのですが、他のバージョンに書き換える(CDN)
・フッターで実行するscriptを読み込む
・プラグインの停止(WP-PageNavi/Advanced Custom Fields)
・wordpressのダウングレード(4.9.2へ)

他になにか解決に繋がりそうな、対処策はありませんでしょうか。
jQueryに詳しい方、ご助言いただけると助かります。

お手数ですが、よろしくお願い致します。

----追記分-----
header.phpの内容です。

<!DOCTYPE html>
<html <?php language_attributes(); ?> class="no-js">
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="profile" href="http://gmpg.org/xfn/11">
    <?php if ( is_singular() && pings_open( get_queried_object() ) ) : ?>
    <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
    <?php endif; ?>

<!-- OGP -->
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">
<title> 
        <?php 
            if ( is_front_page() && is_home() ) {
                echo  bloginfo('name') . bloginfo('description') ;
            } else {
                echo the_title();
            }
        ?>
</title>
<meta property="og:title" content="<?php the_title(); ?>" />
<meta property="og:type" content="website" />
<meta property="og:url" content="<?php echo the_permalink(); ?>" />
<meta property="og:site_name" content="<?php bloginfo('name'); ?>" />
<meta property="og:description" content="<?php bloginfo('description'); ?>" />

<!--  Facebook用設定 -->
<meta property="fb:app_id" content="164153340876523" />

<!-- ※ Twitter共通設定 -->
<meta name="twitter:card" content="photo" />

<!-- OGP画像 -->
<?php get_template_part('inc/og-image'); ?>

<!-- jquery -->
<script src="https://code.jquery.com/jquery-2.2.3.js"></script>

<!-- css -->
<link href="<?php bloginfo('template_url'); ?>/css/normalize.css" rel="stylesheet" type="text/css">
<link href="<?php bloginfo('template_url'); ?>/css/common.css" rel="stylesheet" type="text/css">
<?php if( is_front_page() && is_home() ) { ?>
    <link href="<?php bloginfo('template_url'); ?>/css/index.css" rel="stylesheet" type="text/css">
<?php } else { ?>

<?php } ?>

<!-- WEBフォント -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">

<!-- 時間差でクラスを追加 -->
<script>
 setTimeout(function(){
 $(".ttl-area").addClass("anime");
 },2500);
</script>

<!-- アナリティクス -->
<script
</script>

<!-- アドセンス -->
<script>
</script>

</head>

<body <?php body_class(); ?>>
    <div class="ttl-area">
    <div class="ttl-inner">
        <h1>
            <a href="<?php bloginfo('url'); ?>">
                <img src="<?php bloginfo('template_url'); ?>/img/logo-h1.png" alt="<?php bloginfo('description'); ?>">
            </a>
        </h1>
        <ul class="sns-btn">
            <li><a href="https://twitter.com/basser45186053?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-show-count="false">Follow @basser45186053</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></li>
            <li><div class="fb-like" data-href="https://www.facebook.com/basssoku/?ref=bookmarks" data-layout="button" data-action="like" data-size="small" data-show-faces="true" data-share="true"></div></li>
            <li></li>
        </ul>
    </div>
</div>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2018/02/06 21:07

    とんでもないです。記述を見るとちゃんと読み込まれているようですね。console.log(JSON.stringify($||jQuery)) 等で、どの時点までjQueryが存在しているか確認してみましょう。

    キャンセル

  • x_x

    2018/02/06 21:30

    <head>が二回出現したり、タグが閉じられてなかったりしているようです。開発者ツールでjQueryの読み込みのあたりを見てみるとどうなってますか?

    キャンセル

  • SeijiFukuda

    2018/02/06 22:19

    ご回答ありがとうございます。OGP画像を取得する部分をインクルードしていたのですが、そこでphpの構文にエラーがあったようでjQueryが読み込めていなかったようで、その部分を修正すると綺麗に動きました。とても助かりました。ありがとうございました。

    キャンセル

回答 2

checkベストアンサー

+1

自作テーマでしょうか、HTMLが変になっていますね。あと、wp_head() が無いので足しましょう。自分で指定しなくてもjQueryを呼んでくれます。

【関数リファレンス/wp head - WordPress Codex 日本語版】
https://wpdocs.osdn.jp/関数リファレンス/wp_head

【WordPress で jQuery を使う時の注意点 – EastCoder;】
https://eastcoder.com/2014/07/using-jquery-with-wordpress/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/06 22:25

    ご回答ありがとうございます。
    <?php wp_head() ?>忘れておりました。。ありがとうございます。

    OGP画像を取得する部分をインクルードしていたのですが、そこでphpの構文にエラーがあったようでjQueryが読み込めていなかったようで、その部分を修正すると綺麗に動きました。とても助かりました。ありがとうございました。

    キャンセル

0

jQueryを使用する際は、

$(function(){
...
});

などで囲まないとエラーになります。
以下で動きますでしょうか。

$(function(){
 setTimeout(function(){
     $(".ttl-area").addClass("anime");
 },2500);
});

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/06 21:46

    ちなみにjQueryの書き始め方は、いくつもあります。
    http://blog2.gods.holy.jp/?eid=202

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る