Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.09.2009, 09:47
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Обработчиком назначить метод объекта
Привет.
Хочу создать объект чтоб он создавал элементы на страничке, хранил ссылки
на них и чтобы события от них возвращались к нему же.
Делаю так:
function class1()  // прототип класса
{
    this.tagName='в объекте значение'; // по умолчанию 
	this.nazv='объект';                      //
	this.vivod1=function() {
	    alert(this.nazv+'\n'+this.tagName+'\n');
	}
}
var myobj=new class1(); // создаю

function func1()
{
	var obj=document.getElementById('ddd');// элемент div на странице
	var ob=document.createElement('SPAN');
	var o=document.createTextNode('Нажмите по мне');
	ob.appendChild(o);
	ob.onclick=myobj.vivod1; // !!!!!!!!!! - назначаю обработчик
	obj.appendChild(ob);
	
}

В коде вызываю:
<a href="javascript:myobj.vivod1()">Проверка 1</a>

- все естественно ОК
Потом:
<a href="javascript:func1()">Проверка 2</a>

элемент создастся, но при нажатии на нем функция
myobj.vivod1 вызывается так как будто не имеет никакого отношения к myobj.
Так делать нельзя, да?

Последний раз редактировалось micscr, 19.09.2009 в 09:57.
Ответить с цитированием
  #2 (permalink)  
Старый 19.09.2009, 10:53
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

function class1()  // конструктор класса
{
    this.tagName='в объекте значение'; // по умолчанию 
    this.nazv='объект';                      //
    var self = this;
    this.vivod1=function() {
        alert(self.nazv+'\n'+self.tagName+'\n');
    }
}
Ответить с цитированием
  #3 (permalink)  
Старый 19.09.2009, 11:15
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Во Riim спасибо. Круто.
Читал недавно про замыкания, подумал что несколько надуманно и
оставил потом уже разбираться поглубже.
И по иронии почти сразу понадобилось
Вообще для более глубокой работы в JS обязательно
замыкания пригодятся, да?
(в других языках такого способа работы не встречал вроде.)
Ответить с цитированием
  #4 (permalink)  
Старый 19.09.2009, 16:54
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от micscr
Вообще для более глубокой работы в JS обязательно
замыкания пригодятся, да?
По-любому пригодятся.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с положением свободно позиционируемого объекта Newgen Элементы интерфейса 16 28.07.2009 09:41
Назначить на обработчик события метод обьекта Logo Общие вопросы Javascript 11 20.06.2009 23:40
Добавить свой метод к элементу alekciy Events/DOM/Window 6 16.02.2009 19:29
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00
Не работает перебор свойств объекта BANick Общие вопросы Javascript 1 16.09.2008 22:46