Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.07.2018, 10:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Dilettante_Pro,
лучше менять текст на одной ссылке и slideToggle() как по ссылке.
Ответить с цитированием
  #12 (permalink)  
Старый 04.07.2018, 10:37
Интересующийся
Отправить личное сообщение для max1985 Посмотреть профиль Найти все сообщения от max1985
 
Регистрация: 03.07.2018
Сообщений: 25

Сообщение от laimas Посмотреть сообщение
Dilettante_Pro,
лучше менять текст на одной ссылке и slideToggle() как по ссылке.
Так и сделал:
<script type="text/javascript">
$(document).ready(function(){
$('#getContent').click(function(){

$(this).toggleClass('opened').toggleClass('closed').next().slideToggle();
    if($(this).hasClass('opened')) {
        $(this).html('Скрыть');
		$.ajax({
url: "/katprod/",
type: "GET",
cache: false,
beforeSend: function() {
$('#divContent').html('Получаем контент');
},
success: function(html){
$("#divContent").html(html);
}
});
    }
    else {
        $(this).html('Развернуть');
    }
return false;
});
});
  </script>
<div class="col-md-12 col-sm-12 col-xs-12"><a href="#" id="getContent">Развернуть</a></div>
<div class="col-md-12 col-sm-12 col-xs-12" id="divContent"></div>

Теперь надо скрыть контент при повторном нажатии
Попробовал сделать так:
else {
        $(this).html('Развернуть');
		$("#divContent").remove();
    }

Но тогда второй раз контент не загружаеться

Последний раз редактировалось max1985, 04.07.2018 в 10:51.
Ответить с цитированием
  #13 (permalink)  
Старый 04.07.2018, 10:55
Интересующийся
Отправить личное сообщение для max1985 Посмотреть профиль Найти все сообщения от max1985
 
Регистрация: 03.07.2018
Сообщений: 25

Указал класс дива, из загруженного контента и все получилось
else {
        $(this).html('Развернуть');
		$(".category").remove();
    }

Если код не корректный просьба указать на ошибки. Спасибо!
Ответить с цитированием
  #14 (permalink)  
Старый 04.07.2018, 11:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

max1985, почитайте о псевдоселкторах, через которые можно прописать тексты на кнопке. Останется скриптом менять состояние элемента slideToggle() и переключать класс кнопки toggleClass().
Ответить с цитированием
  #15 (permalink)  
Старый 04.07.2018, 12:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

кнопка получаем контент load ajax jquery
max1985,
$(function() {
    var btn = $("#getContent"),
        div = $("#divContent"),
        title = ["Развернуть", "Скрыть", "Получаем контент"];
    btn.on("click", function(event) {
        event.preventDefault();
        var text = div.text().trim();
        if (text) {
            text = title[+div.is(":hidden")];
            div.slideToggle(300);
            btn.text(text)
        } else if (text != title[2]) {
            div.text(title[2]);
            $.ajax({
                url: "/katprod/",
                type: "GET",
                cache: false,
                success: function(html) {
                    div.html(html);
                    btn.text(title[1]);
                }
            })
        }
    })
});

Последний раз редактировалось рони, 04.07.2018 в 12:21.
Ответить с цитированием
  #16 (permalink)  
Старый 04.07.2018, 13:00
Интересующийся
Отправить личное сообщение для max1985 Посмотреть профиль Найти все сообщения от max1985
 
Регистрация: 03.07.2018
Сообщений: 25

Спасибо рони все работает как надо! Единственное не могу присвоить иконку для кнопки закрыть в виде <i class="fa fa-chevron-up" aria-hidden="true"></i>
Ответить с цитированием
  #17 (permalink)  
Старый 04.07.2018, 14:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

max1985,
$(function() {
    var btn = $("#getContent"),
        div = $("#divContent"),
        title = ["Развернуть", "Скрыть ", "Получаем контент"];
    btn.on("click", function(event) {
        event.preventDefault();
        var text = div.text().trim();
        if (text) {
            var hidden = div.is(":hidden")
            text = title[+hidden];
            div.slideToggle(300);
            btn.text(text);
            hidden && btn.append('<i class="fa fa-chevron-up" aria-hidden="true"></i>')
        } else if (text != title[2]) {
            div.text(title[2]);
            $.ajax({
                url: "/katprod/",
                type: "GET",
                cache: false,
                success: function(html) {
                    div.html(html);
                    btn.text(title[1]).append('<i class="fa fa-chevron-up" aria-hidden="true"></i>');
                }
            })
        }
    })
});
Ответить с цитированием
  #18 (permalink)  
Старый 04.07.2018, 15:03
Интересующийся
Отправить личное сообщение для max1985 Посмотреть профиль Найти все сообщения от max1985
 
Регистрация: 03.07.2018
Сообщений: 25

Спасибо рони, немного подправил, вот так вообще в идеале:
<script type="text/javascript">
$(function() {
    var btn = $("#getContent"),
        div = $("#divContent"),
        title = ["Развернуть", "Скрыть ", "Получаем контент"];
    btn.on("click", function(event) {
        event.preventDefault();
        var text = div.text().trim();
        if (text) {
            var hidden = div.is(":hidden")
            text = title[+hidden];
            div.slideToggle(300);
            btn.text(text).append(' <i class="fa fa-chevron-down" aria-hidden="true"></i></a>');
        } else if (text != title[2]) {
            div.text(title[2]);
            $.ajax({
                url: "/katprod/",
                type: "GET",
                cache: false,
                success: function(html) {
                    div.html(html);
                    btn.text(title[1]).append(' <i class="fa fa-chevron-up" aria-hidden="true"></i>');
                }
            })
        }
    })
});

</script>
<div class="col-md-12 col-sm-12 hidden-xs"><span class="opener"><a href="#" id="getContent">Развернуть <i class="fa fa-chevron-down" aria-hidden="true"></i></a></span></div>
<div class="row"><div class="col-md-12 col-sm-12 .hidden-xs" id="divContent"></div></div>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных в форму при нажатии на ссылку usmdamir Общие вопросы Javascript 0 26.07.2017 00:55
Как сделать? Выделение текста в div при нажатии на ссылку Olena Элементы интерфейса 3 01.03.2015 19:01
Появляющийся блок при нажатии на ссылку Morgam jQuery 9 07.10.2012 08:14
При нажатии на ссылку раскрываются все div anonimous jQuery 1 09.08.2012 14:49
Если один уже открыт и при нажатии на ссылку два первый блок скрывался и открывался ybiza Элементы интерфейса 3 16.12.2010 22:24