Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Всплывающее сообщение (https://javascript.ru/forum/misc/72585-vsplyvayushhee-soobshhenie.html)

wolfio 10.02.2018 19:52

Всплывающее сообщение
 
Здравствуйте, О великие гуру js!
Нуждаюсь в вашей помощи, по следующей задаче:

пишу страничку, на которой есть кнопка, по нажатии которой я отправляю посредством post запроса данные, а ответ хочу отобразить в виде "текст, который я отдал в ответ" (текст не важен, но это текст).
Мои познания в js, к сожалению не столь велики, и как я понял, я могу выбрать только между modal window, и popup <smthg>.
Однако modal window, как я смог нагуглить, блокируется как всплывающее окно (типа реклама), если это результат асинхронного запроса.

Остается popup.
Уперся я в то, что не знаю как сделать его именно всплывающим сообщением. Примеры, которые я нагугливал - это примеры вызова статичного дива, в котором уже условно прописан текст, и он просто невидим. А могу ли я сделать аналогично с динамическим текстом?

Вот то, что я имею сейчас. Вместо алерта я пытался подставить с десяток всяких кривых вариантов, но так ничего и не вышло. Кстати, может быть можно как-то стилизовать алерт-окно под всплывалку?

$(document).ready(function () {
    $(".b-button_right_").click(function () {
        $.post("MakeAdRespond"
            , {AdId: $(this).closest("div.b_ad").prop("id")}
            , function (data) {alert(data)} //всплывалкой показать data
        )
    });
});

В идеале мне хотелось бы в data выводить html текст, чтобы он в сообщении отображался соответствующе (например, показать таблицу в ответе). Но т.к. я не знаю возможно ли это в принципе, ограничился убогой реализацией.

Возможно, что есть какой-то более простой способ, которого я не знаю. Если вам придет в голову эта мысль, скажите пожл.

Белый шум 10.02.2018 20:04

function (data) { $("#div_id").html(data); $("#div_id").dialog(); }
https://jqueryui.com/dialog/

wolfio 10.02.2018 21:45

Цитата:

Сообщение от Белый шум (Сообщение 477543)
function (data) { $("#div_id").html(data); $("#div_id").dialog(); }
https://jqueryui.com/dialog/

Простите, О Великий Белый шум)
так вот простите за идиотский вопрос - но правильно ли я понял, что как такового окна поверх в виде всплывающего сообщения нет и это просто иллюзия, созданная стилями?

и еще вопрос - а как сделать так, чтобы этот контейнер, который я должен заполнить, изначально был невидим, ну и чтобы видимость была только при ответе и до закрытия?

рони 10.02.2018 22:40

Цитата:

Сообщение от wolfio
чтобы этот контейнер, который я должен заполнить, изначально был невидим,

:-?
<style type="text/css">
#div_id{
  display: none;
}
    </style>

Белый шум 11.02.2018 01:27

Цитата:

Сообщение от wolfio
правильно ли я понял, что как такового окна поверх в виде всплывающего сообщения нет и это просто иллюзия, созданная стилями?

да

j0hnik 11.02.2018 10:21

Цитата:

Сообщение от wolfio (Сообщение 477551)
О Великий Белый шум

:write:

Белый шум 11.02.2018 10:35

j0hnik,
Мда, звучит как сарказм :)

wolfio 11.02.2018 11:33

Цитата:

Сообщение от Белый шум (Сообщение 477631)
j0hnik,
Мда, звучит как сарказм :)

Но это не сарказм)
люди, которые знают в чем то больше меня, всегда выглядят величаво) ведь нельзя знать всего на свете)

wolfio 11.02.2018 15:59

Господа, у меня получилось, но изначально в вопросе я не учел пары нюансов, о которых просто не мог подумать:
1. Как сделать такое ограничение при клике, чтобы последующий клик "закрывал" (скрывал и очищал) див от предыдущего клика?
2. Можно ли сделать через jquery привязку позиции дива к месту, на котором был курсор во время клика?

Белый шум 11.02.2018 20:59

1. $('#div_id').html('');
2. Читайте документацию: http://api.jqueryui.com/dialog/


Часовой пояс GMT +3, время: 05:44.