Код (Javascript): $(document).ready(function(){ $('li > a').click(function(e){ var id = ($(this).attr('id')); var div = $('li > div#'+id); if(div.is(':empty')){ $.ajax({ type: 'POST', url: '/index.php', data:{ action: $(this).data('action') }, success: function(res){ div.html(res); }, error: function(){ } }); }else{ console.log(div); switch (div.css('display')) { case 'none': div.css('display', 'block'); break; case 'block': div.css('display', 'none'); break; } } e.preventDefault(); }); });
@TillTheDayIDie, во-первых, в таких случаях желательно показывать HTML-код, относящийся к данной проблеме. А во-вторых, вполне возможно, что код в else у вас никогда не сработает, т.к. любой всимвол (пробел, перенос строки и т.д.) уже не делает его "пустым". HTML: <div></div> <div> </div> <div> </div> Код (Javascript): $('div').each( (i, el) => console.log($(el).is(':empty'))); И в-третьих, хоть это и не относится к вопросу, весь код в else, можно заменить одной строкой: Код (Javascript): div.toggle();