Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.12.2016, 13:27
Новичок на форуме
Отправить личное сообщение для Alex_M45 Посмотреть профиль Найти все сообщения от Alex_M45
 
Регистрация: 21.12.2016
Сообщений: 4

Не срабатывает js функция при щелчке по div-у
Всем доброго дня, есть часть кода php, который в цикле формирует поля таблицы:
//прикрепляю ссылку на каждую картинку, при формировании html у каждой ссылки вызов функции с разными параметрами
echo 
("
	<div class = 'col'>
		<div class = 'pic' onсlick = \"order_selected('".$result[$i][1]."', '".$result[$i][2]."')\">
			<img class = 'image' src = '".$result[$i][0]."'/>
		</div>
		<div class = 'title'>".$result[$i][1]."</div>
		<div class = 'description'>".$result[$i][2]."</div>
	</div>
");


В коде браузера вызов формируется так:
<div class = 'pic' onсlick = "order_selected('тестовое сообщение', 'тестовое сообщение 2')">


Собственно сама функция.
Её назначение - создание "модального окна" с вставкой в поля значения из массива $result по щелчку контейнера, указанного выше:

<script type="text/javascript">
function order_selected(var title, var description)
{
	document.write
	(
		"<div id = 'win'>"+
			"<div class = 'overlay'/>"+
			"<div class = 'visible'>"+
				"<form action = 'order.php' method = 'post'>"+
					"<h3>Отправка заказа</h3>"+
					"<div class = 'content'>"+
						"<p>Вы выбрали:</p>"+
						"<p name = 'title'>title</p>"+
						"<p name = 'description'>description</p>"+
						"<p>Email: <input type = 'text' name = 'email' /></p>"+
					"</div>"+
					"<input class = 'button' type = 'button' value = 'Отмена'/>"+
					"<input class = 'button' type = 'submit' value = 'Отправить'/>"+
				"</form>"+
			"</div>"+
		"</div>"
	);
}
</script>


Пробовал вызывать в теле html документа:
<script type="text/javascript">
order_selected('бла бла бла', 'бла бла бла');
</script>

ничего не происходит как и через кликание div-а.
Ответить с цитированием
  #2 (permalink)  
Старый 23.12.2016, 13:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Alex_M45,
2 строка var-ы уберите ... и попробуйте никогда document.write в функциях не использовать.
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2016, 14:38
Новичок на форуме
Отправить личное сообщение для Alex_M45 Посмотреть профиль Найти все сообщения от Alex_M45
 
Регистрация: 21.12.2016
Сообщений: 4

function order_selected(title, description) - всё равно не срабатывает.
А в чем проблема такого использования? (на будущее запомнить)
Знаю есть альтернатива через innerHTML, но этот код тоже должен работать по идее.
Ответить с цитированием
  #4 (permalink)  
Старый 23.12.2016, 14:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от Alex_M45
всё равно не срабатывает.
работает всё, только document.write после клика "стирает" страницу, т.к. браузер снова парсит страницу.
document-write#только-до-конца-загрузки
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
<script>
function order_selected(title, description)
{
  document.write
  (
    "<div id = 'win'>"+
      "<div class = 'overlay'/>"+
      "<div class = 'visible'>"+
        "<form action = 'order.php' method = 'post'>"+
          "<h3>Отправка заказа</h3>"+
          "<div class = 'content'>"+
            "<p>Вы выбрали:</p>"+
            "<p name = 'title'>title</p>"+
            "<p name = 'description'>description</p>"+
            "<p>Email: <input type = 'text' name = 'email' /></p>"+
          "</div>"+
          "<input class = 'button' type = 'button' value = 'Отмена'/>"+
          "<input class = 'button' type = 'submit' value = 'Отправить'/>"+
        "</form>"+
      "</div>"+
    "</div>"
  );
}
</script>
</head>

<body>


<script type="text/javascript">


order_selected('бла бла бла', 'бла бла бла');


</script>


</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 23.12.2016, 15:38
Новичок на форуме
Отправить личное сообщение для Alex_M45 Посмотреть профиль Найти все сообщения от Alex_M45
 
Регистрация: 21.12.2016
Сообщений: 4

т.е. document.write() это тот-же php только на стороне клиента и не годится для создания динамических страниц без перезагрузки и лучше использовать innerHTML, верно?
Ответить с цитированием
  #6 (permalink)  
Старый 23.12.2016, 15:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от Alex_M45
лучше использовать innerHTML, верно?
да или Мультивставка: insertAdjacentHTML и DocumentFragment

или создавать https://learn.javascript.ru/modifying-document
Ответить с цитированием
  #7 (permalink)  
Старый 23.12.2016, 15:50
Новичок на форуме
Отправить личное сообщение для Alex_M45 Посмотреть профиль Найти все сообщения от Alex_M45
 
Регистрация: 21.12.2016
Сообщений: 4

Благодарю за ответы
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
JS Создали div, как при создании повесить событие? фонарик Общие вопросы Javascript 5 02.03.2013 09:33
Как при щелчке прибавить значение cookies на единицу. Peter23 Общие вопросы Javascript 6 23.02.2013 13:14
Не срабатывает hover при использовании в div IE 6.0 AlexMak (X)HTML/CSS 5 14.05.2009 18:26
JS при щелчке на сылку появляется текст Ed51 Ваши сайты и скрипты 2 05.02.2009 23:57