2016-10-14 14 views
0

ページ上のすべてのドロップダウンメニューを見つけようとしていて、そのクラスが ".active"(または ".active.visible")の場合は、クラス ".input - filled"jQuery他のクラスがある場合にクラスにクラスを追加

これはかなりシンプルなはずですが、まだ動作させることができませんでした。

私が試した:

$('.ui.multiple.search.selection.dropdown.active.visible).addClass('input-filled') 

私は、これは素敵なエレガントな解決策になるだろうと思ったが、それはうまくいきませんでしたので、私が試した:ここ

$('.dropdown').each(function(){ 
    if($(this).hasClass('visible')){ 
     $(this).addClass('input--filled'); 
    }; 
}); 

は私の試みのいくつかCodePensですこれまで:

http://codepen.io/anon/pen/KgBQxR?editors=1111

http://codepen.io/anon/pen/mAjXpP?editors=1111

+3

2番目のコードはうまく動作するはずですが、ページロード時に1回しか実行されないという問題があります。リスナーに追加する必要があるので、ドロップダウンが表示されているかどうかを* when *チェックします。どんなイベントでも、クラス 'visible'を追加/削除することは、' input-filled'クラスの追加/削除の実装を提案するところです。 – Santi

+0

セレクタで複数のクラスを連続して使用した理由そのうちの1つで十分です。 '$( '。dropdown.active')と同じです。addClass( 'input-filled')' – Mohammad

+0

@Santi - ああもちろんです!ありがとうございました。 –

答えて

-2

更新: 私は、あなたが尋ねた内容には注意を払わなかった。私はセマンティックUI Apiをチェックし、以下のアプローチで終わりました。私はそれが役に立つと思う。ちなみに、これらのページがページ上にたくさんある場合は、別の方法で動作する場合は、IDセレクタを使用することができます。

$('.ui.dropdown').dropdown({ 
    forceSelection: false, 
    onShow: function() { 
     var $dropDown = $(this); 
     $dropDown.addClass("input-filled") 
    }, 
    onHide: function() { 
     var $dropDown = $(this); 
     $dropDown.removeClass("input-filled") 
    } 
}); 

これは、このサンプルを実装したCodePenです。

関連する問題