Javascript.RU

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

Нужно понять getElementById+onclick
Здравствуйте. У меня тестовый сайт, я новичок. Подскажите как сделать чтоб по нажатию на первую ссылку в меню слева ("подводная лодка") появлялось сообщение "проверка". Файлы приложены.
Вложения:
Тип файла: zip gm.zip (167.3 Кб, 1 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2017, 07:08
Интересующийся
Отправить личное сообщение для o5andrey Посмотреть профиль Найти все сообщения от o5andrey
 
Регистрация: 03.01.2017
Сообщений: 13

document.getElementById('subm').onclick = function() {
     alert('проверка')
}

Теперь хочу добавить элемент div со словом "привет" и чтобы он не пропадал: у меня получается что он появляется на момент клика и пропадает. События onRelease в JS я не нахожу. Как нужно сделать?
document.getElementById('subm').onclick = addElement;
//onclick - добавляемые элементы появляются на время клика и пропадают
  var my_div = newDiv = null;

  function addElement() {

    // создаем новый элемент div
    // и добавляем в него немного контента

    var newDiv = document.createElement("div");
        newDiv.innerHTML = "<h1>Привет!</h1>";

    // добавляем только что созданный элемент в дерево DOM

    my_div = document.getElementById("main");
    //вставляем newDiv внутрь main
    my_div.appendChild(newDiv);
  }
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2017, 07:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

o5andrey,
страница перезагружается, потому что по клику вы отправили форму
https://learn.javascript.ru/forms-submit
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2017, 08:22
Интересующийся
Отправить личное сообщение для o5andrey Посмотреть профиль Найти все сообщения от o5andrey
 
Регистрация: 03.01.2017
Сообщений: 13

Т.е. если запускать функцию по нажатию иначе нельзя? По клику всегда происходит обновление страницы? Я значит понял нужно создать переменную-флаг, которую надо циклично проверять на состояние true.
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2017, 08:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

o5andrey,
не выдумывайте, а читайте документацию
Цитата:
1.Перейдите в текстовое поле и нажмите Enter, будет событие, но форма не отправится на сервер благодаря return false в обработчике.
Ответить с цитированием
  #6 (permalink)  
Старый 07.01.2017, 08:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

o5andrey,
Действия браузера по умолчанию
Ответить с цитированием
  #7 (permalink)  
Старый 07.01.2017, 13:12
Интересующийся
Отправить личное сообщение для o5andrey Посмотреть профиль Найти все сообщения от o5andrey
 
Регистрация: 03.01.2017
Сообщений: 13

Дошло, добавил return false; в конец функции.
Ответить с цитированием
  #8 (permalink)  
Старый 10.01.2017, 14:36
Интересующийся
Отправить личное сообщение для o5andrey Посмотреть профиль Найти все сообщения от o5andrey
 
Регистрация: 03.01.2017
Сообщений: 13

Мне нужно чтобы рамочка рисовалась только один раз по клику. Спасибо.
document.getElementById('subm').onclick = addElement;
var my_div = newCnv = null;
  function addElement() {
  	if (Document.getElementsByTagName("canvas")[0] == null) {   //<--------------------?
          var newCnv = document.createElement("canvas");
    	  newCnv.setAttribute('id', 'field1')
    	  newCnv.setAttribute('height', 320)
    	  newCnv.setAttribute('width', 480)
          newCnv.innerHTML = "Скорее всего этот браузер не поддерживает HTML5"; 
   }
	var ctx = newCnv.getContext('2d');
        /* Рисует контур прямоугольника на всю ширину и высоту canvas */
        ctx.strokeRect(0, 0, newCnv.width, newCnv.height);
	     // добавляем только что созданный элемент в дерево DOM
	     my_div = document.getElementById("main");
 	     //вставляем newCnv внутрь main
 	     my_div.appendChild(newCnv);
      	     return false; //чтобы добавленные элементы не пропадали из-за перезагрузки страницы
   }

Ошибка в Google Chrome: "Paused on exception: 'TypeError: Document.getElementsByTagName is not a function'."
Ответить с цитированием
  #9 (permalink)  
Старый 10.01.2017, 14:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от o5andrey
'TypeError: Document.getElementsByTagName
Ответить с цитированием
  #10 (permalink)  
Старый 10.01.2017, 16:51
Интересующийся
Отправить личное сообщение для o5andrey Посмотреть профиль Найти все сообщения от o5andrey
 
Регистрация: 03.01.2017
Сообщений: 13

Да, и не догадаешься. Поставил маленькую d и пошло дело. Только почему при втором нажатии рамка пропадает, обновляется страница?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно сделать скрипт для Ucoz stanley-kr Работа 0 08.05.2015 06:00
onclick и условие else if Navilsor Элементы интерфейса 11 05.02.2015 10:35
Нужно доработать AJAX Sergio022 Работа 6 19.08.2014 16:24
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Нужно обяснить мне на счет ІР RaS Оффтопик 9 05.07.2010 17:39