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

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

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

これは、HTMLの 擬似クラス[hover]に関するタグです。Hoverは与えられた要素へマウスカーソルを置くことを意味します。また、タッチ可能なデバイスでユーザーが要素へタッチすることをHoverと呼ぶ場合もあります。

jQuery

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

Q&A

解決済

1回答

2133閲覧

【jQuery】 hover()を第1引数のみで使用し、toggleClass()と合わせて使用した場合の挙動

Euroku

総合スコア2

hover

これは、HTMLの 擬似クラス[hover]に関するタグです。Hoverは与えられた要素へマウスカーソルを置くことを意味します。また、タッチ可能なデバイスでユーザーが要素へタッチすることをHoverと呼ぶ場合もあります。

jQuery

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

0グッド

0クリップ

投稿2021/03/19 06:47

ある書籍で

・hover()を第1引数のみ与えて使用すると、マウスオーバー時の処理が実行される
・toggleClass()はセレクタで指定した要素が引数で与えたクラスを持っていなければ、クラスを付加、持っていれば外す

と記載されていました。
そこで、次のようなプログラムを組んでみたところ、マウスオーバー時は予想通りの挙動でしたが、
マウスアウト時には色が元に戻り、与えたクラスが外れていました。
上記の情報からだと、マウスオーバーすることにより、クラスが付加され、マウスアウトしてもクラスは付加されたままだと考えたのですが、
どの部分に誤った理解があるのでしょうか。

自分でも色々調べてみましたが、答えにたどり着けなかったため、ご質問させていただきました。
どうぞよろしくお願いいたします。

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Test</title> 8 9 <link rel="stylesheet" href="css/style.css"> 10 <script src="js/jquery-2.1.4.min.js"></script> 11 <script src="js/script.js"></script> 12 13</head> 14<body> 15 <h1 id="jsTest" class="red">TEST</h1> 16</body> 17</html>

css

1.red{ 2 color: red; 3} 4 5.pink { 6 color: pink; 7}

jQuery

1$(function(){ 2 $('#jsTest').hover(function(){ 3 $(this).toggleClass('pink'); 4 }); 5});

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

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

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

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

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

guest

回答1

0

ベストアンサー

hover()を第1引数のみ与えて使用すると、マウスオーバー時の処理が実行される

いいえ。マウスオーバーが始まるときと終わるときの両方で呼ばれます。

質問者さんが想定した動作は hover(function() {...}, null)
mouseenter(function() {...}) です。

公式の hover のドキュメントには引数について「A function to execute when the mouse pointer enters or leaves the element.」と書かれています。

投稿2021/03/19 06:59

編集2021/03/19 07:04
int32_t

総合スコア20997

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

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

Euroku

2021/03/19 08:19

hover()はマウスオーバー、アウト時、両方で呼び出され、 「2つの引数を指定すると、第1引数はマウスオーバー時、第2引数はマウスアウト時に使用される。 そして1つしか引数を与えなかった場合は両方の時、その引数が用いられる」 ということですね。 すっきり解決いたしました! この度はありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問