2012-02-18 6 views
2

Bootstrap 2.0を使用してNavbarを構築しています。サブメニュー(.dropdown-menu)にログインフォーム(ユーザ名、パスワード、サブミット)を配置しました。Boostrap 2.0:サブメニューにログインフォームを追加してフォーカスが近くにならないようにする

すべてがうまくレンダリングされますが、ユーザー名またはパスワードの入力フィールドをクリックするとメニューがメニュー項目をクリックしたと思われ、サブメニューが閉じられているようです。どのように私はこれを防ぐことができるかについてのヒント?

ソリューション:

$('.dropdown form').on('click', function (e) { 
    e.stopPropagation() 
}) 
+0

D'ああを!最初に '.preventDefault()'を試してみましたが、うまくいきませんでした。これはシンプルで、ソリューションを投稿していただきありがとうございました! – fholgado

答えて

1

LI要素のpersistクラスを追加します。

//編集

JSコードは、それが実際に動作させるために:

(function($) { 
var toggle = '[data-toggle="dropdown"]'; 

function clearMenus() { 
    var toggleParent = $(toggle).parent(); 
    if(!toggleParent.hasClass('persist')) 
     toggleParent.removeClass('open'); 
} 

$(function() { 
    $('html').off('click.dropdown.data-api'); 
    $('html').on('click.dropdown.data-api', clearMenus); 
}); 
})(window.jQuery); 
+0

それは動作していないようです。ブートストラップ1.xの機能だったのでしょうか? 2.0のCSS/JSファイルには "persist"という言葉はありません。 –

+1

はい、私の悪い、私はこの問題のための解決策を見つけませんでした。これがこの機能を実現するために作った理由です: '(function($){ \t var toggle = '[data-toggle =" dropdown "]'; \t関数clearMenus(){ \t \t VAR toggleParent = $(トグル).parent();(!toggleParent.hasClass( '持続')) \t \t場合 \t \t \t toggleParent.removeClass( 'オープン') ; \t} \t $(function(){ \t \t $( 'html')。off( 'click.dropdown.data-api'); \t \t $( 'html')。on( 'click.dropdown.data-api'、clearMenus); \t}); })(window.jQuery); ' –

+0

ああ、優秀です。ありがとう! :) –

関連する問題