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

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

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

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

jQuery

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

Q&A

2回答

1563閲覧

javascriptの条件分岐について質問です。

mop

総合スコア14

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2015/12/01 00:47

javascriptの条件分岐について質問です。
JQueryを使っています。
以下の文に条件分岐を足したいと思っています。

function rotator() { $('ul li.update:first-child').slideUp(1000, function() { $(this).appendTo($('ul.upd')).show(); }); } var rand = Math.floor( ( Math.random() * 2000 ) + 2000 ); setInterval(rotator, rand);

htmlの要素にhoverでheightを200にするように設定します。
その要素にマウスが乗っているとき、上記メソッドを止めるように設定したいと思っています。

function rotator() { $('ul li.update:first-child').slideUp(1000, function() { $(this).appendTo($('ul.upd')).show(); }); } var rand = Math.floor( ( Math.random() * 4000 ) + 6000 ); function rotatorRote(){ if($("#youso").css("height") == 200){ $(rotator).stop(); } else { setInterval(rotator, rand); } }; rotatorRote();

上記のように#yousoのheight値が200の場合rotatorがストップするようにしましたが上手くいきません。
rotatorの部分をthisにしても思ったように動いてくれませんでした。

やりたいことは、#youso要素にマウスが乗っているときにメソッドを止めたいと考えています。
このプログラムはjQueryを使っているブログを参考に自分で少し手を加えただけのものです。

宜しくお願いします。

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

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

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

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

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

guest

回答2

0

mop さんへ

要望は**#youso要素にマウスが乗っているときにメソッドを止めたい**ということですよね?

でしたら、シンプルにhover(over,out)を利用すればよろしいのでは?
なお、具体的なサンプルがございませんので検証はしていません。
ロジック構築の参考程度として受け止めて頂けましたら幸いです。

Javascript

1function rotator() { 2 $('ul li.update:first-child').slideUp(1000, function() { 3 $(this).appendTo($('ul.upd')).show(); 4 }); 5} 6 7$('#youso').hover( 8 function(){ 9 $(rotator).stop(); 10 }, 11 rotator 12); 13var rand = Math.floor( ( Math.random() * 2000 ) + 2000 ); 14setInterval(rotator, rand);

投稿2015/12/02 09:07

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

mop

2015/12/02 18:40

何を意図した回答なのか全くわかりません。 質問に質問で返すなど言語道断。 冷やかしは止めて頂きたい。
退会済みユーザー

退会済みユーザー

2015/12/02 23:41

mop さんへ まず、「冷やかし」の意図は全くございませんので、そのように感じられたのでしたら謝罪いたします。 今回の回答でお伝えしたかったことはhover(over,out)を使用すればご要望の条件分岐を実現できると思いますが、使用することも検討してはいかがでしょうか、という提案です。 ご自身、「#youso要素にマウスが乗っているときにメソッドを止めたい」と明記されていますので、この点に関しましては、改めて確認したまでです。(要件定義) もし、「#youso要素のheightの高さによって条件分岐したい」のでしたら、そのようにご回答いただけましたら、当方の質問内容の読解不足として改めて回答させていただくつもりでした。 参考リンク jQuery日本語リファレンス:hover(over, out)[http://semooh.jp/jquery/api/events/hover/over%2C+out/]
Lhankor_Mhy

2015/12/03 01:49

mopさん このようなQ&Aサイトに不慣れなのかもしれませんが、回答者から質問者に補足情報を求めるのはよくあることです。teratailにも「情報の追加・修正の依頼をする」という機能があります。stshishoさんの質問は穏当なものであると私も考えます。(ちなみに私もあなたのコメントを受けて同様の内容を回答に追記するつもりでした。) ですので、あなたが補足情報を求められるのが嫌であるならば、ご質問文に「補足情報は一切出しませんので、そのような質問を書くのはやめてください」と一言書いておいた方が、回答者としても「そのような質問者であれば回答を控えた方がいいな」と判断でき、お互いに不快に思うことが減るかもしれませんので、おすすめしておきます。
guest

0

なんか別の部分でハマりそうな気もしますが……、こんな感じではどうですか。

javascript

1function rotator() { 2 if($("#youso").css("height") != 200){ 3 $('ul li.update:first-child').slideUp(1000, function() { 4 $(this).appendTo($('ul.upd')).show(); 5 }); 6 } 7 } 8var rand = Math.floor( ( Math.random() * 2000 ) + 2000 ); 9setInterval(rotator, rand);

投稿2015/12/01 03:38

Lhankor_Mhy

総合スコア35860

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

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

mop

2015/12/01 15:28

差し換えて実行をしてみましたが上手くいきませんでした。 元々のjQueryの挙動は変わらずですが、マウスオーバーの判定(height != 200)がいまいち機能していないようです。 heightの値で判定しているのが原因なのかは定かではありませんが。 解答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問