Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.07.2014, 17:35
Аспирант
Отправить личное сообщение для Master_Sergius Посмотреть профиль Найти все сообщения от Master_Sergius
 
Регистрация: 29.07.2014
Сообщений: 42

Динамическое создание элементов. Не работает onclick
Здравствуйте! Пытаюсь сделать маленький тест, каждый новый вопрос появляется после ответа на предыдущий.
Создаю кнопку перехода к следующему вопросу.
var next = document.createElement("input");
  next.setAttribute('type','button');
  next.setAttribute('value','next');
  next.setAttribute('onclick',question2);
  //next.attachEvent('onclick',question2);
  document.body.appendChild(next);

где question2 - функция, в которую хотелось бы передать ещё параметр - ответ на предыдущий вопрос. Но это потом. Для начала у меня не срабатывает она никак:
function question2()
{
  document.write('it works!');
  alert("wtf");
}

Если расскоментирую attachEvent, а через аттрибут закоментирую, то кнопка вообще не появляется. Подскажите в чём проблема, или хотя бы где посмотреть/почитать.
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2014, 18:03
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

http://javascript.ru/tutorial/events/intro

И можно писать просто next.type = "button", next.value = "next"
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2014, 21:27
Аспирант
Отправить личное сообщение для Master_Sergius Посмотреть профиль Найти все сообщения от Master_Sergius
 
Регистрация: 29.07.2014
Сообщений: 42

Сообщение от Erolast Посмотреть сообщение
http://javascript.ru/tutorial/events/intro

И можно писать просто next.type = "button", next.value = "next"
Большое спасибо! Теперь вроде всё понятно. Но, как присваивать аттрибуты лучше по стилю? По-моему, через точку доступаться к полям лучше только при работе со своими объектами, не?
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2014, 21:55
Аватар для Sklifosofsky
Новичок на форуме
Отправить личное сообщение для Sklifosofsky Посмотреть профиль Найти все сообщения от Sklifosofsky
 
Регистрация: 05.07.2014
Сообщений: 7

Здесь конструкция с кавычками setAttribute аналогична
next.setAttribute('onclick','question2()');
Ответить с цитированием
  #5 (permalink)  
Старый 30.07.2014, 00:49
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от Sklifosofsky Посмотреть сообщение
Здесь конструкция с кавычками setAttribute аналогична
next.setAttribute('onclick','question2()');
Может все таки так уже писать
next.onclick = question2;
function question2(){
	alert('Ya');
}

еще статья на заметку
http://javascript.ru/unsorted/top-10...ns#10-addevent
Ответить с цитированием
  #6 (permalink)  
Старый 30.07.2014, 07:20
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Но, как присваивать аттрибуты лучше по стилю? По-моему, через точку доступаться к полям лучше только при работе со своими объектами, не?
Важно понимать разницу между свойствами и аттрибутами - http://javascript.ru/tutorial/dom/attributes.
Обычно изменяют через свойства.
Ответить с цитированием
  #7 (permalink)  
Старый 30.07.2014, 09:48
Аспирант
Отправить личное сообщение для Master_Sergius Посмотреть профиль Найти все сообщения от Master_Sergius
 
Регистрация: 29.07.2014
Сообщений: 42

И всё-таки, что-то никак не получается сделать рабочим онклик!!!
прошу взглянуть весь код (там пока бардак, но даже с алертом не пашет):
function start()
{
  document.write('Choose importance of decision<br />');
  // Create a select element dynamically
  var select = document.createElement("select");
  for (var i=1; i<=10; i++)
  {
    var option = document.createElement("option");
    option.text = i;
    option.value = i;
    try
    {
      select.add(option, null); //Standard
    } catch(error)
    {
      select.add(option); // IE only
    }
  }
  document.body.appendChild(select);
  // End of creating select
  var next = document.createElement("input");
  next.setAttribute('type','button');
  next.setAttribute('value','next');
  //next.addEventListener = ("click", function() { alert('whats up, nigga?') }, false)
  next.onclick = function() { alert('whats up, nigga?'); };
  //next.onclick = function() { question2('whats up, nigga?') }
  //next.setAttribute('onclick',question2);
  //next.attachEvent('onclick',question2);
  document.body.appendChild(next);
}

function question2(msg)
{
  document.write('it works!');
  alert(msg);
}


Почему не хочет кликаться? (там закомментированы все попытки)
Ответить с цитированием
  #8 (permalink)  
Старый 30.07.2014, 09:53
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Как так? Код рабочий.
Загляни в консоль ошибок, должно проясниться. Обычно она открывается по Ctrl+Shift+I.
Ответить с цитированием
  #9 (permalink)  
Старый 30.07.2014, 11:07
Аспирант
Отправить личное сообщение для Master_Sergius Посмотреть профиль Найти все сообщения от Master_Sergius
 
Регистрация: 29.07.2014
Сообщений: 42

Ничего не показывает. У вас код работает?
Ответить с цитированием
  #10 (permalink)  
Старый 30.07.2014, 11:14
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

http://learn.javascript.ru/play/Ul7x4b
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамическое создание элементов sg550 Events/DOM/Window 28 02.08.2010 19:34
Не работает onClick добавление тега <s> AvaGet Общие вопросы Javascript 13 09.12.2008 18:41
IE: создание элементов. Jurasmi Events/DOM/Window 12 28.11.2008 02:10
В IE не работает динамическое изменение colspan, нужна помощь! Extasy Общие вопросы Javascript 8 17.08.2008 11:55
Создание элементов createElement в IE. Phoenix Общие вопросы Javascript 6 26.09.2007 19:43