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

Нуждаюсь в помощи
Здравствуйте.
В целях саморазвития колхозю сайт, попутно изучая все что это требует, и периодически психуя на вселенную.
с JavaScript у меня совсем печально. Пытаюсь сделать спойлер, который отправит запрос серверу, получит от него данные, и выведет в виде внутренней таблички.
И в общем-то мой код не работает. я не понимаю почему. Может кто помочь?

собственно, страничка(кусочек), с кнопкой "отклики(спойлер)":
<div class="b_ad" id="30">
            <div class="b_ad_right_side">
                <p><a href="https://test.test/$$$ACC_ID-$$$NICKNAME/">$$$NICKNAME</a></p>
            </div>
            <div class="b_ad_left_side">
                <div class="b_ad_text">
                    <p>$$$TEXT_MESS </p>
                </div>
                <div class="b_ad_time_cr" style="float: right">
                    <p>$$$TIME_AGO</p>
                </div>
                <button class="b-button_right_">Откликнуться</button>
                
                <a href="#" class="b_button_responds">
                    <span>Отклики(спойлер)</span>
                </a>
                <div class="spoiler-block"></div>
            </div>
        </div>


и мой код-колхоз на нее и вывод данных:
$(document).ready(function () {
    $(".b_button_responds").click(function () {
        alert("Respind_id!:"+ $(this).closest("div.b_ad").prop("id"));
        $.post("RespondsList"
            , {AdId: $(this).closest("div.b_ad").prop("id")}
            // , function (data) {alert("::responds_list::\t"+$(this).closest("div.b_ad").prop("id"))}
            , function (data) {
                $(this)
                    .parent()
                    .find('.spoiler-block')
                    .html(data);
                alert(data); 
                $(this).on('click','b_button_responds',function (e) {
                    $(this)
                        .parent()
                        .find('.spoiler-block')
                        .html(data)
                        .slideToggle(300);
                })
            }
        )
    });
});


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

Последний раз редактировалось wolfio, 24.06.2018 в 15:59.
Ответить с цитированием