Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2015, 23:10
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

не работает toggle
Здравствуйте? подскажите пожалуйста почему при клике на ссылку первый раз после загрузки страницы не вызывается функция обработчик события после завершения саой toggle? проще говоря почему с первого раза не меняется тип иконки?

ul class="list-group submenu">
                  <li class="list-group-item ">Lorem ipsum
                      <a href="#" class="toggle-sub-menu" > <i class="glyphicon glyphicon-plus-sign "></i></a>
                        <ul class="my-submenu" id="sub1" >
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                        </ul>
                                           
                  </li>
                  <li class="list-group-item"><a href="/donec/">Donec tincidunt laoreet</a></li>
                  <li class="list-group-item"><a href="/vestibulum/">Vestibulum elit</a></li>
                  <li class="list-group-item"><a href="/etiam/">Etiam pharetra</a></li>
                  <li class="list-group-item"><a href="/phasellus/">Phasellus placerat</a></li>
                  <li class="list-group-item"><a href="/cras/">Cras et nisi vitae odio</a></li>
                  <li class="list-group-item ">Lorem ipsum
                      <a href="#" class="toggle-sub-menu" > <i class="glyphicon glyphicon-plus-sign pull-right"></i></a>
                        <ul class="my-submenu" id="sub2">
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                        </ul>
                                           
                  </li>
              </ul>


<script>
$(document).ready(function(){
    $(".toggle-sub-menu").click(function(){
          var cont = '#'+$(this).next().attr("id");
         
        $(cont).slideToggle("slow",function() {
          
          var className = $(cont).prev().children('i').attr("class");
          if (className=='glyphicon glyphicon-plus-sign') {
              className ='glyphicon glyphicon-minus-sign'
          }
          else {
              className='glyphicon glyphicon-plus-sign'
          }
          $(cont).prev().children('i').attr("class",className);
        });
    });
});
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2015, 23:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Moloch,
потому что условие составлено неверно -- такие сравнения делаются не через == а через !=
потому что находится на самом деле неизвестно пока туда не прописали скриптом.

if (className != 'glyphicon glyphicon-minus-sign') {
              className ='glyphicon glyphicon-minus-sign'
          }
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2015, 23:19
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

спасибо, буду знать!
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2015, 23:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Открывашка 208
Moloch,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .glyphicon-plus-sign::after  {
     content: '+'

  }
  .glyphicon-minus-sign::after  {
     content: '-'

  }
   .toggle-sub-menu {
     text-decoration: none
   }
  .toggle-sub-menu + ul{
    display: none;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
 <script>
$(function(){
    $(".toggle-sub-menu").click(function(){
          var cont = $(this).next();
          var i = $('i' , this)
        cont.slideToggle("slow",function() {
        i.toggleClass('glyphicon-plus-sign glyphicon-minus-sign')
        });
    });
});
</script>

</head>

<body>
<ul class="list-group submenu">
                  <li class="list-group-item ">Lorem ipsum
                      <a href="#" class="toggle-sub-menu" > <i class="glyphicon glyphicon-plus-sign "></i></a>
                        <ul class="my-submenu" id="sub1" >
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                        </ul>

                  </li>
                  <li class="list-group-item"><a href="/donec/">Donec tincidunt laoreet</a></li>
                  <li class="list-group-item"><a href="/vestibulum/">Vestibulum elit</a></li>
                  <li class="list-group-item"><a href="/etiam/">Etiam pharetra</a></li>
                  <li class="list-group-item"><a href="/phasellus/">Phasellus placerat</a></li>
                  <li class="list-group-item"><a href="/cras/">Cras et nisi vitae odio</a></li>
                  <li class="list-group-item ">Lorem ipsum
                      <a href="#" class="toggle-sub-menu" > <i class="glyphicon glyphicon-plus-sign pull-right"></i></a>
                        <ul class="my-submenu" id="sub2">
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                          <li><a href="">proof1</a></li>
                        </ul>

                  </li>
              </ul>


</body>

</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
ajax запросы, работает на одних компах и не работает на других vtornik23 AJAX и COMET 2 22.03.2010 18:22
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11