Jqueryのスクリプトが動作しないのですが

Simplicityの特徴 フォーラム テーマファイルのカスタマイズに関する質問など Jqueryのスクリプトが動作しないのですが

8件の返信スレッドを表示中
  • 投稿者
    投稿
    • #5204
      hyne
      ゲスト

      はじめまして。
      Simplicityをダウンロードさせていただきました。
      Hタグからリストメニューを表示させるカスタマイズを行っているのですが、動作しません。
      外部読み込みにしてもヘッダー内に記述しても同様です。
      何か分かりましたら、教えていただけますでしょうか。
      Jqueryはちゃんと出力されているようですし、Twenty Fourteenなどでは問題なく動作します。
      お手数ですが、よろしくお願いします。

      <script>
      jQuery(function(){
      	var idcount = 1;
      	var toc = '';
      	var currentlevel = 0;
      	jQuery("h3:header",this).each(function(){
      		this.id = "chapter-" + idcount;
      		idcount++;
      		var level = 0;
      		if(this.nodeName.toLowerCase() == "h3") {
      			level = 1;
      		} else if(this.nodeName.toLowerCase() == "h4") {
      			level = 2;
      		}
      		while(currentlevel < level) {
      			toc += '<ol class="chapter">';
      			currentlevel++;
      		}
      		while(currentlevel > level) {
      			toc += "<\/ol>";
      			currentlevel--;
      		}
      		toc += '<li><a href="#' + this.id + '">' + jQuery(this).html() + "<\/a><\/li>\n";
      
      	});
      	while(currentlevel > 0) {
      		toc += "<\/ol>";
      		currentlevel--;
      	}
      	jQuery("#toc").html(toc);
      });
      </script>
    • #5233
      アバター画像わいひら
      キーマスター

      コードをコピペして以下のようにentry-body.php内に貼り付けてみたのですが.動作はするようですよ。
      とりあえず、jQueryが動作してないということないと思います。
      何かJavaScript関係を縮小したり、呼び出し位置を変更したり.何かいじるプラグインは入っていないでしょうか?

      <script>
      jQuery(function(){
      	var idcount = 1;
      	var toc = '';
      	var currentlevel = 0;
      	jQuery("h3:header",this).each(function(){
      		this.id = "chapter-" + idcount;
      		idcount++;
      		var level = 0;
      		if(this.nodeName.toLowerCase() == "h3") {
      			level = 1;
      		} else if(this.nodeName.toLowerCase() == "h4") {
      			level = 2;
      		}
      		while(currentlevel < level) {
      			toc += '<ol class="chapter">';
      			currentlevel++;
      		}
      		while(currentlevel > level) {
      			toc += "<\/ol>";
      			currentlevel--;
      		}
      		toc += '<li><a href="#' + this.id + '">' + jQuery(this).html() + "<\/a><\/li>\n";
      
      	});
      	while(currentlevel > 0) {
      		toc += "<\/ol>";
      		currentlevel--;
      	}
      	jQuery("#toc").html(toc);
      });
      </script>
          
          <div id="toc"></div>
    • #5240
      hyne
      ゲスト

      ご確認いただき、本当にありがとうございます。
      たしかにbody内にスクリプトを書くと動作しますね。
      しかし、ヘッダー内や外部読み込みとした場合に動作していないようです。
      これはなぜでしょうか?
      もはや、このテーマと関係なさそうな話ではありますが、お時間あれば教えてくださいますでしょうか?
      よろしくお願いします。

    • #5244
      hyne
      ゲスト

      追記です。
      プラグインはすべて切った状態です。
      また、カスタマイズは上記のスクリプトのみです。

    • #5245
      アバター画像わいひら
      キーマスター

      しかし、ヘッダー内や外部読み込みとした場合に動作していないようです。
      これはなぜでしょうか?

      僕は、JavaScriptの動作にそこまで詳しくないので原因まではわからないです。けれど、テーマのせいではないと思います。

      ただ、外部ファイルのjavascript.jsに以下のように入力するとちゃんと表示されるので、外部ファイルのJavaScriptは動作しているようです。

      jQuery(function(){
        jQuery("#toc").html('toc');
      });

      あと、コードを追ってまでの動作確認はしていないですけど、以下の部分を

      jQuery("h3:header",this).each(function(){

      次のように書き換えたら、表示はされるようです。

      jQuery("h3",this).each(function(){

    • #5252
      hyne
      ゲスト

      わざわざ恐縮です。

      >次のように書き換えたら、表示はされるようです。

      これはヘッダー内に書いてもということでしょうか?

      もう少し自分で検証してみますね。

      本当にありがとうございます。

    • #5259
      アバター画像わいひら
      キーマスター

      これはヘッダー内に書いてもということでしょうか?

      外部ファイル(javascript.js)に書いてもということです。

    • #5274
      hyne
      ゲスト

      解決しました。
      再度、確認したところ、ヘッダーのテンプレートにスクリプトを書いていてもなぜか実際に出力されていないようでした。
      もう一度、テーマを入れ直したら、何の問題もなく動作しました。
      つまらないことで大変、お手数をお掛けしましたが、お付き合いくださり、ありがとうございました。
      それにしてもよいテーマですね!

    • #5278
      アバター画像わいひら
      キーマスター

      ありがとうございます!
      テーマを入れなおしたら動作するなんてこともあるんですね。
      JavaScriptはやっぱ奥が深いというか.難しいというか、苦手というか。
      けど、問題が解決してよかったです!

8件の返信スレッドを表示中
  • トピック「Jqueryのスクリプトが動作しないのですが」には新しい返信をつけることはできません。
スポンサーリンク
アドセンス(大)
アドセンス(大)