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

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

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

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

Q&A

解決済

2回答

2641閲覧

selectbox風のリスト作り、jqueryのmouseoverとmouseoutで表示切り替えをしたいのですが、うまくいきません...

退会済みユーザー

退会済みユーザー

総合スコア0

jQuery

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

0グッド

0クリップ

投稿2017/02/03 08:30

下記のようなコードでselectbox風のリストを作りました。
mouseoverした際はリストが表示されますが、
リスト上にマウスが乗った際に消えてしまいます。

mouseoutのクラス指定が良くないとは思うのですが、
どのクラスを指定すればリスト上にマウスが乗ってもリストが消えないようにできるのでしょうか?

<form> <div class="selectbox"> <p class="selectbox__select"> <span class="selectbox__select__text">選択してください</span> </p> <ul class="selectbox__pulldown"> <li class="selectbox__pulldown__list" param="項目">項目1</li> <li class="selectbox__pulldown__list" param="項目2">項目2</li> <li class="selectbox__pulldown__list" param="項目3">項目3</li> <li class="selectbox__pulldown__list" param="項目4">項目4</li> <li class="selectbox__pulldown__list" param="項目5">項目5</li> </ul> <input type="hidden" name="selectbox" value="" /> </div> <input type="submit" value="検索"> </form>
$('.selectbox').each(function(){ var self = $(this); var select = $('.selectbox__select',self); var pulldown = $('.selectbox__pulldown',self); var data = $('input:hidden',self); var select_value = $('.selectbox__select__text',select); pulldown.hide().children(':last-child').addClass('last-child'); select.mouseover(function(e){ pulldown.show(); $(this).addClass('select_focus'); e.stopPropagation(); return false; }); $('.selectbox__pulldown__list',pulldown).click(function(){ var text = $(this).text(); select_value.text(text); data.val($(this).attr('param')); $('.selected',pulldown).removeClass('selected'); $('.select_focus').removeClass('select_focus'); $(this).addClass('selected'); return false; }); // selectとpulldownからmouseoutしたときに非表示にしたい select.mouseout(function(){ $('.select_focus').removeClass('select_focus'); $('.selectbox__pulldown').hide(); }); });

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

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

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

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

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

guest

回答2

0

ベストアンサー

どういう挙動をしたいかによりますが
たとえばこんな感じでどうですか?

javascript

1$(function(){ 2 $('.selectbox').find('.selectbox__pulldown').hide(); 3 $('.selectbox').on('mouseover mouseout',function(e){ 4 $(this).find('.selectbox__pulldown').toggle(e.type=='mouseover'); 5 }); 6}); 7

投稿2017/02/03 08:55

yambejp

総合スコア114769

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

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

退会済みユーザー

退会済みユーザー

2017/02/03 09:24

ありがとうございます。 解決しました。 やりたい挙動でした!
guest

0

こうとか?

JavaScript

1// select.mouseover(/* 略 */); 2// ↓ 3 self.mouseover(/* 略 */); 4 5// select.mouseout(/* 略 */); 6// ↓ 7 self.mouseout(/* 略 */);

投稿2017/02/03 09:08

kei344

総合スコア69398

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

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

退会済みユーザー

退会済みユーザー

2017/02/03 09:24

ありがとうございました。 解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問