2013-08-19 69 views
7

我已經看過類似的其他問題,並嘗試了許多解決方案,但都沒有工作。問題在於,這是頂級橫幅的迷你登錄表單。當你點擊字段時,我需要按鈕不會自動關閉。這是我的代碼:Twitter Bootstrap無法停止從關閉點擊下拉

<script> 
    $(document).on('click', '.dropdown-menu', function(e){ 
     $(this).hasClass('keep_open') && e.stopPropagation(); // This replace if conditional. 
    }); 
    ​</script>     
    <div class="btn-group" > 
     <a class="btn btn-small btn-inverse dropdown-toggle" data-toggle="dropdown" href="#"> 
     <i class="cus-key"></i> Login 
     <span class="caret"></span> 
     </a> 
     <ul class="dropdown-menu pull-right keep_open"> 
     <form action="clog.php" method="post" class="keep_open"> 
     <!-- dropdown menu links --> 
      <li><input type="text" placeholder="Username..." class="keep_open" /></li> 
      <li><input type="text" placeholder="Password..." class="keep_open"/></li> 
      <li><input type="submit" name="submit" style="background-image: url('img/login.png'); width: 110px; height: 32px; cursor: hand; margin-top: -5px" value=" " /></li> 
      <li><a href="/riders/register.php" ><span style="color: green; float: right" > Sign up for account<i class="icon-double-angle-right"></i></a></span></li> 
     </form> 
     </ul> 
    </div> 
+0

它似乎停止傳播不起作用。我在絕望中將所有課程添加到了所有內容中! – srt8driver

+0

你能否提供一個[小提琴](http://jsfiddle.net)來複制這個問題? –

+0

http://jsfiddle.net/X5xTX/(新來的小提琴,不知道我得到那個權利) – srt8driver

回答

3

我是有一個手風琴/切換被嵌套在下拉菜單內的自舉3.從藉此語法該子菜單中同樣的問題source code停止一切崩潰切換從關閉下拉:

$(document).on(
    'click.bs.dropdown.data-api', 
    '[data-toggle="collapse"]', 
    function (e) { e.stopPropagation() } 
); 

你可以用任何你想停止關閉形式,例如更換[data-toggle="collapse"]另一個類或另一個數據屬性。

+0

這是正確的答案。 [data-toggle =「collapse」]可以用菜單和'body'的特定類代替(當你點擊BODY中的任何地方時,下拉菜單也會關閉)。例如'main_menu,body' – Steven

18

我想通了。它不在文檔就緒功能中。 (帽尖到Koala_dev) JavaScript需要是:

<script type="text/javascript"> 

    $(document).ready(function() { 
     $(document).on('click', '.dropdown-menu', function (e) { 
      $(this).hasClass('keep_open') && e.stopPropagation(); // This replace if conditional. 
     }); 
    }); 
    </script>