За последние 24 часа нас посетили 22865 программистов и 1703 робота. Сейчас ищут 1737 программистов ...

Не скрывается блок div

Тема в разделе "JavaScript и AJAX", создана пользователем TillTheDayIDie, 8 июн 2018.

  1. TillTheDayIDie

    TillTheDayIDie Новичок

    С нами с:
    11 апр 2018
    Сообщения:
    19
    Симпатии:
    0
    Код (Javascript):
    1. $(document).ready(function(){
    2.     $('li > a').click(function(e){
    3.         var id = ($(this).attr('id'));
    4.         var div = $('li > div#'+id);
    5.         if(div.is(':empty')){
    6.             $.ajax({
    7.                 type: 'POST',
    8.                 url: '/index.php',
    9.                 data:{
    10.                     action: $(this).data('action')
    11.                 },
    12.                 success: function(res){
    13.                             div.html(res);
    14.                 },
    15.                 error: function(){
    16.                 }
    17.             });
    18.         }else{
    19.             console.log(div);
    20.             switch (div.css('display')) {
    21.                 case 'none':
    22.                     div.css('display', 'block');
    23.                     break;
    24.                 case 'block':
    25.                     div.css('display', 'none');
    26.                     break;
    27.             }
    28.         }
    29.         e.preventDefault();
    30.     });
    31. });
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @TillTheDayIDie, во-первых, в таких случаях желательно показывать HTML-код, относящийся к данной проблеме. А во-вторых, вполне возможно, что код в else у вас никогда не сработает, т.к. любой всимвол (пробел, перенос строки и т.д.) уже не делает его "пустым".
    HTML:
    1. <div></div>
    2. <div> </div>
    3. <div>
    4. </div>
    Код (Javascript):
    1. $('div').each( (i, el) => console.log($(el).is(':empty')));
    И в-третьих, хоть это и не относится к вопросу, весь код в else, можно заменить одной строкой:
    Код (Javascript):
    1. div.toggle();
     
  3. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    [​IMG]У вас и элемент <a> и <div> с одинаковыми ID!
    --- Добавлено ---
    Это тема будет жить вечно...