Первый элемент, видимый в раскрывающемся меню щелчка

Я адаптировал это меню, которое нашел на Codepen, к разделу своего веб-сайта.

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

Как я могу это сделать?

----------------------

----------------------

----------------------

----------------------

----------------------


$(document).on('click', '.itemscabecera', function(e){
  e.stopPropagation();
  $('.itemscabecera').not($(this)).removeClass('active');
  $(this).toggleClass('active');
});

$(document).on('click', function() {
  $('.itemscabecera').removeClass('active');
});

$(document).on('click', '.mega-menu', function(e){
  e.stopPropagation(); 
})
.itemscabecera {width: 12%;
margin:0.15rem; 
-webkit-border-radius: 6;
-moz-border-radius: 6;
border-radius: 6px;
color: #ffffff;
padding: 15px 3px 20px 3px;
text-decoration: none;
text-align:center;
float:left;
display: inline-block;
background-color: #000;
position: relative;
font-family: Arial;
cursor: pointer;
}


.mega-menu {
  position: absolute;
  bottom: 0;
  background-color: #ffffff;
  border: 1px solid #000000;
  color: #000000;
  display: none;
  width: 140px;
  bottom: -92px;
  left: -1px;
}


.itemscabecera.active .mega-menu {
  display: block;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "itemscabecera">
    <span>1st menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
      
      </ul>
    </div>
  </div>
  <div class = "itemscabecera">
    <span>2nd menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
 
      </ul>
    </div>
  </div>
  <div class = "itemscabecera">
    <span>3rd menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
 
      </ul>
    </div>
  </div>
  <div class = "itemscabecera">
    <span>4th menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
 
      </ul>
    </div>
  </div>
  
    <div class = "itemscabecera">
    <span>5th menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
  
      </ul>
    </div>
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
0
27
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В document.ready добавьте активный класс в первый элемент меню.

$(document).ready(function(){
 var a=$('.itemscabecera')[0]
 $(a).addClass('active');
})

$(document).ready(function(){
 var a=$('.itemscabecera')[0]
 $(a).addClass('active');
})
$(document).on('click', '.itemscabecera', function(e){
  e.stopPropagation();
  $('.itemscabecera').not($(this)).removeClass('active');
  $(this).toggleClass('active');
});

$('.itemscabecera').on('click', function() {
  $('.itemscabecera').removeClass('active');
});

$(document).on('click', '.mega-menu', function(e){
  e.stopPropagation(); 
})
.itemscabecera {width: 12%;
margin:0.15rem; 
-webkit-border-radius: 6;
-moz-border-radius: 6;
border-radius: 6px;
color: #ffffff;
padding: 15px 3px 20px 3px;
text-decoration: none;
text-align:center;
float:left;
display: inline-block;
background-color: #000;
position: relative;
font-family: Arial;
cursor: pointer;
}


.mega-menu {
  position: absolute;
  bottom: 0;
  background-color: #ffffff;
  border: 1px solid #000000;
  color: #000000;
  display: none;
  width: 140px;
  bottom: -92px;
  left: -1px;
}


.itemscabecera.active .mega-menu {
  display: block;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "itemscabecera">
    <span>1st menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
      
      </ul>
    </div>
  </div>
  <div class = "itemscabecera">
    <span>2nd menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
 
      </ul>
    </div>
  </div>
  <div class = "itemscabecera">
    <span>3rd menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
 
      </ul>
    </div>
  </div>
  <div class = "itemscabecera">
    <span>4th menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
 
      </ul>
    </div>
  </div>
  
    <div class = "itemscabecera">
    <span>5th menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
  
      </ul>
    </div>

Это работает, за исключением случаев, когда вы нажимаете за пределами кнопок: пункт меню снова исчезает.

Danielillo 07.03.2019 12:01
Ответ принят как подходящий

Просто вставьте active class в первый div.itemscabecera вот так:

<div class = "itemscabecera active">

И Удалить эта функция:

$(document).on('click', function() {
  $('.itemscabecera').removeClass('active');
});

$(document).on('click', '.itemscabecera', function(e){
  e.stopPropagation();
  $('.itemscabecera').not($(this)).removeClass('active');
  $(this).toggleClass('active');
});

$(document).on('click', '.mega-menu', function(e){
  e.stopPropagation(); 
})
		.itemscabecera {width: 12%;
margin:0.15rem; 
-webkit-border-radius: 6;
-moz-border-radius: 6;
border-radius: 6px;
color: #ffffff;
padding: 15px 3px 20px 3px;
text-decoration: none;
text-align:center;
float:left;
display: inline-block;
background-color: #000;
position: relative;
font-family: Arial;
cursor: pointer;
}


.mega-menu {
  position: absolute;
  bottom: 0;
  background-color: #ffffff;
  border: 1px solid #000000;
  color: #000000;
  display: none;
  width: 140px;
  bottom: -92px;
  left: -1px;
}


.itemscabecera.active .mega-menu {
  display: block;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class = "itemscabecera active">
    <span>1st menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
      
      </ul>
    </div>
  </div>
  <div class = "itemscabecera">
    <span>2nd menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
 
      </ul>
    </div>
  </div>
  <div class = "itemscabecera">
    <span>3rd menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
 
      </ul>
    </div>
  </div>
  <div class = "itemscabecera">
    <span>4th menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
 
      </ul>
    </div>
  </div>
  
    <div class = "itemscabecera">
    <span>5th menu</span>
    <div class = "mega-menu">
      <ul>
        <li>menuitem1</li>
        <li>menuitem2</li>
        <li>menuitem3</li>
  
      </ul>
    </div>

Это логичный ответ, но при нажатии вне кнопок пункт меню снова исчезает...

Danielillo 07.03.2019 12:01

Другие вопросы по теме