Javascript.RU

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

Перехват события onclick
Привет, братцы! Хочу вызывать метод при нажатии на кнопку.
Кнопка такая:
<input name="кнопа" type="button" value="Пыщ" />

Пробовал запиливать в таком духе:
window.onload = function () {
var экземпляр=new конструктор();

var тема=document.getElementsByName("кнопа")[0];
тема.addEventListener ("click", экземпляр.метод(), true);

// или в таком:
document.getElementsByName("кнопа")[0].onclick=экземпляр.метод();
}

Но всё это срабатывало уже при загрузке страницы. Тогда пробовал вешать onclick на кнопку:
<input name="кнопа" type="button" value="Пыщ" onclick="экземпляр.метод();"/>

Всё тлен и не робит. А как следует эти вещи делать?
Ответить с цитированием
  #2 (permalink)  
Старый 01.04.2014, 16:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,125

Сообщение от maternik
Тогда пробовал вешать onclick на кнопку:
<input name="кнопа" type="button" value="Пыщ" onclick="экземпляр.метод();"/>

Всё тлен и не робит.
В чем именно выражается неработоспособность вот этого варианта?
Ответить с цитированием
  #3 (permalink)  
Старый 01.04.2014, 16:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,125

Сообщение от maternik
тема.addEventListener ("click", экземпляр.метод(), true);
// или в таком:
document.getElementsByName("кнопа")[0].onclick=экземпляр.метод();
Что возвращает
экземпляр.метод()

?
Ответить с цитированием
  #4 (permalink)  
Старый 01.04.2014, 16:48
Аватар для maternik
Аспирант
Отправить личное сообщение для maternik Посмотреть профиль Найти все сообщения от maternik
 
Регистрация: 15.10.2013
Сообщений: 31

Сообщение от ksa Посмотреть сообщение
Что возвращает
экземпляр.метод()

?
" is not defined"
Это, видимо, экземпляр
Ответить с цитированием
  #5 (permalink)  
Старый 01.04.2014, 16:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

maternik,
а если убрать () ? экземпляр.метод()
Ответить с цитированием
  #6 (permalink)  
Старый 01.04.2014, 16:59
Аватар для maternik
Аспирант
Отправить личное сообщение для maternik Посмотреть профиль Найти все сообщения от maternik
 
Регистрация: 15.10.2013
Сообщений: 31

Сообщение от рони Посмотреть сообщение
maternik,
а если убрать () ? экземпляр.метод()
Не, он походу экземпляр класса где-то роняет
Ответить с цитированием
  #7 (permalink)  
Старый 01.04.2014, 17:30
Аватар для maternik
Аспирант
Отправить личное сообщение для maternik Посмотреть профиль Найти все сообщения от maternik
 
Регистрация: 15.10.2013
Сообщений: 31

Убрал карочи window.onload = function () {}
оставил голимый var экземпляр=new конструктор();
низнаю почему, но заработало
как я люблю js! =)

UPD: наверное, экземпляр объекта должен быть создан раньше, чем броузер обнаружит вызов метода этого объекта, даже если мы его не вызываем

Последний раз редактировалось maternik, 01.04.2014 в 17:38.
Ответить с цитированием
  #8 (permalink)  
Старый 01.04.2014, 18:03
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Ну так onload срабатывает когда вообще всё прогрузится, включая графику. Естественно до этого при нажатии на кнопку запускается неизвестно что.
Сообщение от maternik Посмотреть сообщение
наверное, экземпляр объекта должен быть создан раньше, чем броузер обнаружит вызов метода этого объекта, даже если мы его не вызываем
Ничего подобного:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<body>

<input type="button" value="test" onclick="obj.method()">

<script>
function Test() {
  this.name = 'test';
  this.method = function() {
    alert(this.name);
  }
}
var obj = new Test();
</script>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Альтернатива с onclick для события в yandex winter Общие вопросы Javascript 3 19.10.2013 16:22
Создание события onclick? kerranswell Events/DOM/Window 31 09.05.2011 21:20
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Изменение события onclick. проблемка kuzmas Общие вопросы Javascript 7 22.11.2010 11:58
Вопрос про вызов события onClick skyfish Общие вопросы Javascript 12 27.12.2008 19:12