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

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

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

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

1916閲覧

jQuery の実装がうまくできません。

BGSW

総合スコア12

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/12/08 14:08

編集2016/12/09 06:42

###前提・実現したいこと
jQueryで、toggleClassを使って要素の場所を変えたいと思っています。
position:fixed;の指定がされている要素に、position:static;の指定がされたクラスを付けて、位置を変えられるかと思ったのですが、うまくできません。
一瞬だけ変わるのですが、すぐに戻ってしまいます。
どのような原因が考えられるでしょうか。
よろしくお願いいたします。

###発生している問題・エラーメッセージ
クリックすると、一瞬だけposition:stitic;が付くのですが、次の瞬間には戻ってしまいます。
htmlの検証で該当するようなエラーは下記のみで、scriptタグの始まりのどこが違うのかもよく分かりません。(scriptは、bodyの閉じタグの直後に書かれています。)

Stray start tag script.

###該当のソースコード

<body> <nav class="navigation"> <ul class="Menu"> <li class="menuA"><a href="">A</a></li> <li class="menuB"><a href="">B</a></li> <li class="menuC"><a href="">C</a></li> <li class="menuD"><a href="">D</a></li> </ul> </nav> <script src="jquery-3.1.1.min.js"></script> <script> $('.Menu li').click(function(){ $('.menuA').toggleClass('plus'); $('.menuB').toggleClass('plus'); $('.menuC').toggleClass('plus'); $('.menuD').toggleClass('plus'); }); </script> </body>
body{ height: 100%; background-color: #fff; font-family: sans-serif; } .Menu li{ background-color:#ffcf60; float: left; width: 7rem; height: 3rem; margin: 1rem; border-radius: 1rem; text-align: center; } .Menu li a{ line-height: 3rem; text-decoration: none; color: #803c27; display: block; } .menuA { position: fixed; left: 25%; top: 25%; transition-property: all; transition-duration: 1s; } .menuB{ position: fixed; left: 45%; top: 45%; transition-property: all; transition-duration: 1s; } .menuC{ position: fixed; left: 60%; top: 10%; } .menuD{ position: fixed; left: 80%; top: 30%; } .plus{ position: static; }

###試したこと
toggleClass以外のメソッド(CSSなど)でも試しました。
同じように、jQueryの効果が一瞬だけついて、すぐに戻ってしまいます。

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

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

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

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

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

k_fujimoto

2016/12/08 23:47

該当のhtmlとcssのソースコードを追記していただくと原因を特定しやすいかと思います。
guest

回答2

0

ベストアンサー

a タグでリンクになっているからですが、何かリンクにしている意味があるのでしょうか?
ちなみにこのように書くことも可能です

$('.Menu li').toggleClass('plus');

投稿2016/12/09 07:03

編集2016/12/09 07:10
date

総合スコア1820

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

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

BGSW

2016/12/09 07:15

リンクは、後で使おうと思って忘れていました。 ありがとうございます。
guest

0

script要素が body要素の中に入っていないのでは?もしくは、HTMLの構造に問題があるのでは?

【javascript - Stray start tag script - Stack Overflow】
http://stackoverflow.com/questions/19958667/stray-start-tag-script

Validator gives that error when you've something outside </body>.

Just move your script tags inside <body>, or keep them in <head>.

投稿2016/12/08 17:45

kei344

総合スコア69407

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問