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

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

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

5回答

4040閲覧

開いているページのメニューのcssを変えたい

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/08/22 10:10

編集2018/08/22 11:30

サイトのナビゲーションなどによくある、現在開いているページのメニューのcssを変えたいのですが、どのようにすれば良いのでしょうか?

現在下記のように記述しているのですが、上手くいきません。

php

1<nav role="navigation" id="subgnavi"> 2<ul class="subgnavi"> 3 <li><a href="<?php echo home_url(); ?>">ホーム</a></li> 4 <li><a href="<?php echo home_url(); ?>/i">いいい</a></li> 5 <li><a href="<?php echo home_url(); ?>/u">ううう</a></li> 6 <li><a href="<?php echo home_url(); ?>/e">えええ</a></li> 7 <li><a href="<?php echo home_url(); ?>/o">おおお</a></li> 8</ul> 9</nav>

css

1ul.subgnavi li { 2 display: inline-block; 3 padding: 15px 0 10px; 4 border-bottom: 5px solid #fff; 5} 6ul.subgnavi li a { 7 border-right: 1px solid #eee; 8 color: #000; 9 display: block; 10 font-size: 15px; 11 font-weight: bold; 12 padding: 5px 9px; 13 box-sizing: border-box; 14 text-decoration: none; 15} 16ul.subgnavi li.active { 17 border-bottom: 5px solid #971315; 18}

js

1$(function(){ 2 $("#subgnavi ul.subgnavi li").click(function(){ 3 $("#subgnavi ul.subgnavi li.active").removeClass("active"); 4 $(this).addClass("active"); 5 }); 6});

追記
以下の方法で、自分のしたいことがほぼ出来るようになりました。
ですが、この記述だとホームにずっと"active"がついたままになってしまいます...。
どうしたらいいでしょうか...。

js

1$(function(){ 2 $('#subgnavi ul.subgnavi a').each(function(){ 3 var $href = $(this).attr('href'); 4 if(location.href.match($href)) { 5 $(this).parent().addClass('active'); 6 } else { 7 $(this).parent().removeClass('active'); 8 } 9 }); 10});

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

こんな感じ?

javascript

1$(function(){ 2 $("#subgnavi ul.subgnavi li").on('click',function(){ 3 $(this).siblings('.active').removeClass("active").end().addClass("active"); 4 }).find('a').on('click',function(e){ 5 e.preventDefault(); 6 }); 7});

ようはliをクリックしようとしても下位のaが反応してしまうので、イベントを殺してやることです

投稿2018/08/22 10:34

yambejp

総合スコア114779

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/22 10:43 編集

ありがとうございます! 私がやりたかったことが出来るようになりました!! ですが、今度はクリックしてもリンク先に飛ばなくなってしまいました....。
yambejp

2018/08/22 10:44

> 今度はクリックしてもリンク先に飛ばなくなってしまいました リンク先にとんだらactiveを返る意味なくないですか? ページ内リンクなのでしょうか?(見た感じ別ページに見えますが・・・)
退会済みユーザー

退会済みユーザー

2018/08/22 10:50

別ページにリンクするようになっています...。 下記のドコモページのように、クリックして、 開いてるページに当たるメニューのcssを変えることはできないのでしょうか...? https://www.nttdocomo.co.jp/product/?icid=CRP_globalnavi_to_CRP_PRD
yambejp

2018/08/22 11:53

飛び先にも同じようなメニューがあってactiveを継承するという意図ですかね? それならば各ページにスタティックに自分のページに該当するメニューに activeをつけて置くだけなのでjavascript自体いらないでしょう
退会済みユーザー

退会済みユーザー

2018/08/22 12:52 編集

そうではないんです...私の説明が分かりずらいようで...申し訳ありません。 静的ページではなく、phpファイルなんです。 このメニューの部分は他のページでは、<?php include ( TEMPLATEPATH . '/gnavi-sub.php'); ?>で読み込んでいます。
yambejp

2018/08/23 02:43

なにか大きな誤解があるようですが ・ページを遷移するなら各ページで最初からactiveを設定できる ・ページが遷移しないなら提示したsampleで十分
guest

0

今回は以下のページのWordPressでやる場合の部分を参考にしたところ無事解決いたしました。
https://www.sriproot.net/blog/current-navigation-1151

回答してくださった3人の方にはとても感謝しております。
結局皆さんからいただいた回答ではない方法で解決できましたが、
一番最初に回答してくださり、何度もやり取りをさせていただいた方をベストアンサーとさせていただきました。

回答してくださった皆さん。本当にありがとうございました。

投稿2018/08/23 02:55

編集2018/08/23 02:57
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

今回は以下のページのWordPressでやる場合の部分を参考にしたところ無事解決いたしました。
https://www.sriproot.net/blog/current-navigation-1151

回答してくださった3人の方にはとても感謝しております。
結局皆さんからいただいた回答ではない方法で解決できましたが、
一番最初に回答してくださり、何度もやり取りをさせていただいた方をベストアンサーとさせていただきました。

回答してくださった皆さん。本当にありがとうございました。

投稿2018/08/23 02:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

http://jsdo.it/a4t5634634267/W94Z

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> <!-- /a4t5634634267/W94Z --> <nav class="navbar navbar-expand navbar-dark bg-primary"> <a class="navbar-brand" href="#">Navbar</a> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mr-auto"> <li class="nav-item"> <a class="nav-link" href="/a4t5634634267/W94Z">active</a> </li> <li class="nav-item"> <a class="nav-link" href="/a4t5634634267/W94Z?x">deactive</a> </li> </ul> </div> </nav>
$(function(){ var $href= "/a4t5634634267/W94Z"; // location.path 等 $("a[href='" + $href + "']").parents("li").addClass("active"); });

こんなことか?

投稿2018/08/23 01:12

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

WordPressタグがついているので…

メニューで作成してwp nav menuで読み込めばアクティブなページのliのクラスにcurrent-menu-itemがつきますし、functions.phpを編集すればcurrent-menu-item以外に変更することもできますが、それだと何か問題が出ますか?
参考 http://totsugekirock.com/2016/06/27/131/

投稿2018/08/23 00:01

編集2018/08/23 00:21
dit.

総合スコア3235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問