Не работает метод hide() JQuery

381
24 ноября 2016, 09:50

Не работает hide() во второй строке, т.е. элемент при загрузке все-таки отображается... Собственно код:

$(function() { 
  $('.spoiler-body').hide(); 
  $('.spoiler-head').click(function() { 
    $(this).next().toggle(); 
    var $self = $(this).children().children(); 
    if ($self.html() == "gear_fill") { 
      $self.html("gear") 
    } else { 
      $self.html("gear_fill") 
    } 
  }); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="list-block"> 
  <ul id="lifecycle spoiler-body"> 
    <li> 
      <a href="#waterfall" class="item-link item-content"> 
        <div class="item-media"><i class="f7-icons colorDark">layers_fill</i> 
        </div> 
        <div class="item-inner"> 
          <div class="item-title">Модель</div> 
        </div> 
      </a> 
    </li> 
  </ul> 
</div>

Answer 1

Вы обращаетесь к классу, а атрибут в разметке указан как айди:

<ul id="lifecycle spoiler-body">

Чтобы код заработал, надо исправить, например, разметку вот так:

<ul id="lifecycle" class="spoiler-body">
Answer 2

Добавьте в css

.spoiler-body {
    display:none;
}

.hide() при загрузке не срабатывает, т.к. пока интерпретатор js не дойдет до hide() - элемент не скроется

Answer 3

Нет у Вас при загрузке элемента .spoiler-body он появляется после загрузки всего документа. Перенесите Ваш код в обработчик DOMReady

jQuery(document).ready(function($) {
  $('.spoiler-body').hide();
  $('.spoiler-head').click(function() {
    $(this).next().toggle();
    var $self = $(this).children().children();
    if ($self.html() == "gear_fill") {
      $self.html("gear")
    } else {
      $self.html("gear_fill")
    }
  });
});
READ ALSO
Переключение блоков

Переключение блоков

Всем доброго времени суток, столкнулся с такой проблемой есть блок с классом block2, который открыт и два блока block1,block3, которые скрыты. Подскажите,...

421
Как обратится к елементу, jquery

Как обратится к елементу, jquery

Есть конструкция типа.

391
google form отправка запроса с сайта

google form отправка запроса с сайта

В принципе мне уже довали совет и оно должно было работать но возникает два момента.

455
Перемножение полей

Перемножение полей

Как перемножить значение поля "Вес" именно с тем пробы, у которого нет класса uk-hidden? Пока не получилось реализовать даже по событию click. .

411