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

laimas 11.02.2018 21:13

1. $('#div_id').empty();

wolfio 14.02.2018 17:44

Цитата:

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

Добрый день.
С документацией ознакомился, в принципе все понял, и все что хотел получил.
У меня возник вопрос уже немного не по диалогу, если позволите:
На примере моего кода, описанного ранее
$(document).ready(function () {
    $(".b-button_right_").click(function () {
        $.post("MakeAdRespond"
            , {AdId: $(this).closest("div.b_ad").prop("id")}
            , function (data) {$(data).dialog({dialogClass: "notification"})}
        )
    });

Чтобы не клепать кучу функций для вызовов разных диалогов, я мог бы прям в ответе передавать html див, с соответствующим именем и ид класса, предварительно подготовив стили для каждого. Таким образом, функцию эту я мог бы использовать как универсальную отображалку любого дива в виде диалога.
Вопрос: как корректно на js обратиться к data параметру, если он условно содержит html текст?
Вариант, который я написал в коде не работает :/

Заранее премного благодарен

Nexus 14.02.2018 17:50

wolfio, в вашем коде вы работаете с элементом, которого еще нет на странице, стоит его сначала добавить в DOM страницы.

рони 14.02.2018 18:13

wolfio,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  :focus{
    outline: none;
  }
  .ui-dialog.notification  {
     background-image: none;
    background-color: #32CD32;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
  <script>
$(function() {
var data = '<div id="slider">slider</div>'
function fn(data) {$(data).appendTo("body").dialog({dialogClass: "notification"})}
fn(data)
});
  </script>
</head>

<body>


</body>
</html>

wolfio 15.02.2018 11:09

Господа, благодарю за внимание.
Рони,
Если я правильно понял, то ваш способ добавляет див в боди при каждом получении уведомления? и если пользователь будет их получать без обновления страницы, то начнет появляться мусор? хотел бы в этом разобраться чисто для понимания.

мой конечный вариант в итоге выглядит примерно так:
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  :focus{
    outline: none;
  }
  .ui-dialog.notification  {
     background-image: none;
    background-color: #32CD32;
  }
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
  <script>
	$(function() {
		var data = '<div id="slider">test</div>'
		function fn(data) {
			<!-- $(data).appendTo("body").dialog({dialogClass: "notification"}) -->
			$("#slider").html(data); 
			$("#slider").dialog({
								title: "Notification",
								closeOnEscape: true,
								closeText: "Закрыть",
								dialogClass: "notification",
								show: "slide",
								modal: false,
								resizable: false,
								open: function(event, ui){
								setTimeout("$('#slider').dialog('close')",1500);
								}
							});
			}
		fn(data)
	});
  </script>
</head>
<body>
<div id="slider" style = "display:none"></div>
</body>
</html>


и у меня 2 заключительных вопроса по моему финальному коду:
1. как коректно вывести кирилицу в уведомлении? у меня кирилица выводится в виде знаков вопроса.
2. оптимально ли написан этот фрагмент кода? или его можно-как то упростить/улучшить? Выглядит довольно громоздко, по моему, сугубо личному, мнению

рони 15.02.2018 11:46

Цитата:

Сообщение от wolfio
то начнет появляться мусор?

можно по close, удалять содержимое информационного блока, если будет проблема.
1. смотреть настройки сервера.
2. нормально


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