Добрый день.
Рони, хотел бы попросить вас о помощи вновь. Я в ходе тестирования кода, с которым вы мне помогли, понял, что не учел один нюанс: когда закрывается спойлер, то при повторном и последующем открытии я ожидал что будет формироваться новый запрос к серверу, для получения новых данных. Вы не могли бы помочь с этим? задача вроде бы простая, но я попробовал сам - поставил дебаг 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,
$(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) }) } }) }); |
Рони, я дико извиняюсь, за такое множество вопросов, но как пофиксить вот этот сдвиг блока при обратном сворачивании спойлера?
Я не знаю как это объяснить этот сдвиг, поэтому гифку сделал. ![]() Под сдвигом я имею ввиду то, что при сворачивании обратно, таблица сдвигается вправа (по вертикали за слово "отклики", а затем уже сворачивается) и разворачивается соответственно так же. Как понять из-за чего это? Стили в коде не меняются вроде бы |
wolfio,
а если slideUp и slideDown заменить на hide и show; или добавить css в строки 12 и 14 slideDown().css({position: "relative"}); или так <style type="text/css"> .b_ad_left_side{ position: relative; } </style> точнее надо смотреть на месте, где-то не хватает позиционирования или в самом блоке или выше по цепочке. |
Часовой пояс GMT +3, время: 06:38. |