Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать атрибут-событие, Не получается его создать 
:(
    Опции темы
GIK
Дата 6.11.2005, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Всем привет.
Не могу создать событие (атрибут onClick)
Код

    f = document.createElement("form");
    document.body.appendChild(f);
    b = document.createElement("input");
    b.setAttribute("type", "button"); 
    b.setAttribute("value", "Вычислить"); 
    b.setAttribute("onClick", "f2()");
    f.appendChild(b);

По разному перепробовал, неполучается.
Код

funct = "f2()"; 
b.setAttribute("onClick", funct);



--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
Aliance
Дата 6.11.2005, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Код

b.onclick = f2;

PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 6.11.2005, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



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

Поверх интерфейсов элементов DOM документа стоят интерфейсы HTML DOM 1, в которых расписанны особые свойства элементов в среде JS. А именно специфичные для каждого элемента свойства и коллекции.

Далее смотрим в DOM 2 Events, видим интерфейсы EventTarget, EventListener в JS излишен. В EventTarget определён addEventListener, замечательная вещь, но ИЕ не поддерживает и даже в 7 версии не собираеться, похоже ведут эту политику специально. Благо с каждым годом по паре процентов юзеров от него отказываються.

Тогда вспоминаем былые интерфейсы(а знает ли кто нибудь что style не существовал, что стили похожие на CSS вперемешку с аттрибутами HTML сразу в элементе лежали? smile ), вспоминаем "традиционную модель событий". Каждый элемент имеет несколько полей onxxx, при возникновении события исполняющая среда смотрит на поле, если функция, то запускает её. Из-за отстойности ИЕ эта модель до сих пор наиболее используемая.

Об attachEvent не говорю, вещь кривая, те кто привык использовать this в обработчике событий будут "приятно" удивлены безмозглостью разработчиков, element в обработчике как в bechaviors существовать не будет... и чем они думали...

Надеюсь подробно и ясно пояснил ситуацию smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
GIK
Дата 6.11.2005, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Цитата
b.onclick = f2;

НИхочит smile
Код

 <html>
 <head>
  <script type="text/javascript">
  <!--
    function f1()
  { var a = "GIK";
    f = document.createElement("form"); //создаем форму
    f.setAttribute("name", "form1"); //Создаем атрибуты формы
    document.body.appendChild(f); //Вставляем форму
    inp = document.createElement("input"); //создаем эллеметн INPUT
    inp.setAttribute("type", "text");  //Создаем нужные атрибуты эллемента
    inp.setAttribute("value", a); 
    inp.setAttribute("name", "input1");
    inp.setAttribute("onClick", "f2()"); //Так тоже нихочит
    f.appendChild(inp); //вставляем готовый эллемент с атрибутами
    //Создаем BUTTON  
    b = document.createElement("input");
    b.setAttribute("type", "button"); 
    b.setAttribute("value", "Вычислить"); 
    b.onclick = f2; //Так НИхочит и скорей всего хотить НИбудит?
    f.appendChild(b);
  } 
   function f2()
 { document.form1.input1.value="Функция f2 работает"; 
  }
   //-->
  </script>
 </head>
<body onLoad="f1()">

</body>
</html>

Добавлено @ 13:25
Цитата
Надеюсь подробно и ясно пояснил ситуацию

Вопросов болше не имею


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
Luceus
Дата 1.5.2007, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 24.3.2006

Репутация: нет
Всего: 1



Я использовал следующий код (опробовал в фаерфоксе и интернет эксплорере - пашет):

<element>.onclick = function () { alert ("it's working"); }

Надеюсь, поможет =)
PM MAIL WWW   Вверх
GIK
Дата 1.5.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Нифига, тему от 2005 года подняли smile 

Luceus, спасибо, посмотрю smile 


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0690 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.