Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 14.07.2018, 17:54
Интересующийся
Отправить личное сообщение для wolfio Посмотреть профиль Найти все сообщения от wolfio
 
Регистрация: 10.02.2018
Сообщений: 21

Добрый день.
Рони, хотел бы попросить вас о помощи вновь.
Я в ходе тестирования кода, с которым вы мне помогли, понял, что не учел один нюанс: когда закрывается спойлер, то при повторном и последующем открытии я ожидал что будет формироваться новый запрос к серверу, для получения новых данных.

Вы не могли бы помочь с этим?
задача вроде бы простая, но я попробовал сам - поставил дебаг alert("sp_text:" + spoiler.text);
что за текст там записан? у меня такого кода нет.
Можете разъяснить в чем фокус тут с str переменной?
и что обозначает это логическое выражение "if(text) " ? проверка на пустоту?

Вот код, который я сделал:

$(function () {
    $(".b_ad").on("click", ".b_button_responds", function (event) {
        event.preventDefault();
        var parent = event.delegateTarget,
            id = parent.id,
            spoiler = $('.spoiler-block', parent),
            text = spoiler.text(),
            str = "загрузка...";

        if (text) {
            spoiler.slideToggle(300);
            spoiler.text("");
        }
        else if (text != str) {
            spoiler.text(str);
            $.post("RespondsList"
                , {AdId: id}
                , function (data) {
                    spoiler.html(data);
                })
        }
    })
});

Собственно я лишь добавил spoiler.text("");, для очистки, чтобы далее формировался запрос к серверу. Проблема в том, что после первого сворачивания, послеующие развертывания спойлера работают с третьего раза. Почему так?

и еще я бы хотел спросить, на далекое будущее - если я вдруг захочу сделать анимацию загрузки (крутящийся кружочек или еще что), правильно ли я понимаю, что вместо строки spoiler.text(str); мне следует вызывать эту самую анимацию?

Последний раз редактировалось wolfio, 14.07.2018 в 18:03.
Ответить с цитированием
  #12 (permalink)  
Старый 14.07.2018, 18:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

wolfio,
$(function() {
    $(".b_ad").on("click", ".b_button_responds", function(event) {
        event.preventDefault();
        var parent = event.delegateTarget,
            id = parent.id,
            spoiler = $(".spoiler-block", parent),
            html = spoiler.html(),
            str = "загрузка...<img src='http://pampinta.com/imgs/img_loader.gif' alt=''>";
        if (html == str) return;
        if (html.trim()) spoiler.slideUp(300, function() {
            spoiler.html("")
        });
        else {
            spoiler.html(str).slideDown();
            $.post("RespondsList", {
                AdId: id
            }, function(data) {
                spoiler.html(data)
            })
        }
    })
});

Последний раз редактировалось рони, 14.07.2018 в 19:00.
Ответить с цитированием
  #13 (permalink)  
Старый 15.07.2018, 14:20
Интересующийся
Отправить личное сообщение для wolfio Посмотреть профиль Найти все сообщения от wolfio
 
Регистрация: 10.02.2018
Сообщений: 21

Рони, я дико извиняюсь, за такое множество вопросов, но как пофиксить вот этот сдвиг блока при обратном сворачивании спойлера?
Я не знаю как это объяснить этот сдвиг, поэтому гифку сделал.


Под сдвигом я имею ввиду то, что при сворачивании обратно, таблица сдвигается вправа (по вертикали за слово "отклики", а затем уже сворачивается) и разворачивается соответственно так же.
Как понять из-за чего это?

Стили в коде не меняются вроде бы
Ответить с цитированием
  #14 (permalink)  
Старый 15.07.2018, 15:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

wolfio,
а если slideUp и slideDown заменить на hide и show;
или добавить css в строки 12 и 14

slideDown().css({position: "relative"});

или так
<style type="text/css">
  .b_ad_left_side{
       position: relative;
  }
  </style>


точнее надо смотреть на месте, где-то не хватает позиционирования или в самом блоке или выше по цепочке.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение 2ух объектов полученных при помощи XMLHttpRequest PawelGil AJAX и COMET 12 23.08.2015 12:56
Нуждаюсь в вашей помощи JavaScript Chris_Phils Работа 12 18.08.2015 16:36
ПОМОГИТЕ плиз!!! я Новичок нуждаюсь в помощи! Brand new you Javascript под браузер 1 11.10.2011 14:47
Вопрос сложный, для ГУРУ, очень нуждаюсь в Вашей помощи!!! saturn Элементы интерфейса 2 25.09.2011 11:34
Здравствуйте дорогие программисты! Я нуждаюсь в помощи! knyazsergei Events/DOM/Window 10 29.04.2010 17:14