2013-08-19 53 views
7

Tôi đã xem xét các câu hỏi khác tương tự và đã thử nhiều giải pháp, nhưng không có giải pháp nào hoạt động. Đây là vấn đề, đây là một hình thức đăng nhập nhỏ cho các biểu ngữ hàng đầu. Tôi cần nút không tự động đóng khi bạn nhấp vào các trường. Đây là mã của tôi:Twitter Bootstrap không thể dừng một menu thả xuống từ khi đóng trên nhấp chuột

<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

dường như quá trình truyền dừng không hoạt động. Tôi đã thêm cả lớp vào mọi thứ trong tuyệt vọng! – srt8driver

+0

bạn có thể cung cấp [fiddle] (http://jsfiddle.net) để tái tạo sự cố không? –

+0

http://jsfiddle.net/X5xTX/ (mới to fiddle, không chắc mình đã nhận đúng) – srt8driver

Trả lời

3

Tôi đã có cùng một vấn đề với một accordion/chuyển đổi sub-menu đã được lồng trong một thả xuống menu trong Bootstrap 3. Borrowed cú pháp này từ source code để ngăn chặn tất cả các Toggles sụp đổ từ đóng thả xuống:

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

bạn có thể thay [data-toggle="collapse"] với bất cứ điều gì bạn muốn dừng đóng theo hình thức, ví dụ như lớp khác hoặc thuộc tính dữ liệu khác.

+0

Đây là câu trả lời đúng. [data-toggle = "collapse"] có thể được thay thế bằng lớp cụ thể của menu AND 'body' (trình đơn thả xuống cũng đóng khi bạn nhấp vào bất kỳ vị trí nào trong BODY). ví dụ: 'main_menu, body' – Steven

18

Tôi đã tìm ra. Nó không nằm trong hàm sẵn sàng của tài liệu. (Mũ chóp để Koala_dev) javascript cần phải được:

<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> 
Các vấn đề liên quan