Добрый день.
Рони, хотел бы попросить вас о помощи вновь. Я в ходе тестирования кода, с которым вы мне помогли, понял, что не учел один нюанс: когда закрывается спойлер, то при повторном и последующем открытии я ожидал что будет формироваться новый запрос к серверу, для получения новых данных. Вы не могли бы помочь с этим? задача вроде бы простая, но я попробовал сам - поставил дебаг 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, время: 01:26. |