Проблемы, закрыв desplegable кликая в кнопке

У меня есть проблема с кнопкой desplegable.

То, что я хочу этой кнопки, состоит в том, что, когда он кликнет вне кнопки, закроется "что уже делает", но когда я нажимаю на кнопку, чтобы закрывать, он откроется снова. Почему не закрывать?

Я не знаю, как делать это, пришел сюда и не выхожу из этого переулка.

var toggle = $('[data-toggle]');

        toggle.click(function(event) {

            $("ul.dropdown-menu").hide();

            var el = $(this).attr('data-toggle');
            $("#" + el).slideToggle();

            // Cerramos el desplegable cuando se hace click en cualquier lugar del DOM
            if($("#" + el).parent(".btn-group").length > 0 ){
                $(window).click(function() {
                    $("#" + el).slideUp(function(){
                        $(window).unbind("click");
                    });          
                });
            }
            event.stopPropagation();
        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="btn-group"> 
    				<button data-toggle="opcion-servicios-contrant" class="btn dropdown-toggle">Contratar <span class="caret"></span> </button>
    				<ul role="menu" class="dropdown-menu" id="opcion-servicios-contrant"> 
    				 	<li><a href="#">Cambio de WIFI</a></li> 
    				 	<li><a href="#">Autodiagnóstico de niveles MTA</a></li> 
    				 	<li><a href="#">Recuperación de contraseña del WIFI</a></li> 
    				 	<li><a href="#">Velocimetro</a></li>
    				 	<li><a href="#">Contratar upgrade</a></li>
    				 </ul>
    		 	</div>
3
задан 13.01.2017, 09:56
0 ответов

Я предполагаю, что то, что ты хотел сделать, состоит в том, чтобы не показывать меню первой, для этого ты должен доставать hide toggle.

var toggle = $('[data-toggle]');

$("ul.dropdown-menu").hide(); // Aquí

toggle.click(function(event) {
  
  var el = $(this).attr('data-toggle');
  $("#" + el).slideToggle();

  // Cerramos el desplegable cuando se hace click en cualquier lugar del DOM
  if($("#" + el).parent(".btn-group").length > 0 ){
    $(window).click(function() {
      $("#" + el).slideUp(function(){
        $(window).unbind("click");
      });          
    });
  }
  event.stopPropagation();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="btn-group"> 
  <button data-toggle="opcion-servicios-contrant" class="btn dropdown-toggle">Contratar <span class="caret"></span> </button>
  <ul role="menu" class="dropdown-menu" id="opcion-servicios-contrant"> 
    <li><a href="#">Cambio de WIFI</a></li> 
    <li><a href="#">Autodiagnóstico de niveles MTA</a></li> 
    <li><a href="#">Recuperación de contraseña del WIFI</a></li> 
    <li><a href="#">Velocimetro</a></li>
    <li><a href="#">Contratar upgrade</a></li>
  </ul>
</div>
2
ответ дан 03.12.2019, 17:41
  • 1
    Спасибо!! Это быть:' ( –  13.01.2017, 11:01
  • 2
    у меня есть проблема... сейчас у этого же самого кода есть 2 кнопки и кликнув в 2 кнопках, я открываются 2. Мне нужно, чтобы, открыв один, закрыли для меня другой но не достигнутого doi :( –  27.01.2017, 10:01
  • 3
    подтверди, что ты не назвал того же самого, пойдите даты - toggle в другом botó n –  27.01.2017, 12:20