Javascript.RU

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

Как вызвать метод функции по клику элемента, созданного в этой функции?
Нужно сделать так чтобы клик по созданному в экземпляре функции элементу вызывал выполнение метода этого же экземпляра функции.
Ниже, в примере, предполагается, что при нажатии на кнопку "ALERT" должно появиться сообщение "OK!", однако, ничего не получается. Помогите, пжл.
var TEST = function()
{
	this.elem = function() { document.body.innerHTML = "<button onclick='"+this+".out();'>ALERT</button>"; };
	this.out = function() { alert("OK!"); };
};
var t = new TEST();
t.elem();
Ответить с цитированием
  #2 (permalink)  
Старый 26.10.2017, 11:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от polinin
примере, предполагается, что при нажатии на кнопку "ALERT" должно появиться сообщение "OK!", однако, ничего не получается
Это нужно делать не формированием строки.

Как вариант
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
window.onload=function(){
	var TEST = function(){
		this.elem = function() { 
			var o=document.createElement('button');
			o.innerHTML='Alert';
			o.onclick=this.out;
			document.body.appendChild(o); 
		};
		this.out = function() { alert("OK!"); };
	};
	var t = new TEST();
	t.elem();
};
</script>
</head>
<body>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 26.10.2017, 12:20
Новичок на форуме
Отправить личное сообщение для polinin Посмотреть профиль Найти все сообщения от polinin
 
Регистрация: 26.10.2017
Сообщений: 7

Понял, спасибо за наводку. Строку убрать не могу - в реальном коде нагляднее и удобнее строка, поэтому сделал наподобие этому:
var TEST = function()
{
	this.elem = function()
	{
		document.body.innerHTML = "<button>ALERT</button>";
		document.getElementsByTagName("button")[0].onclick = this.out;
	};
	this.out = function() { alert("OK!"); };
};
var t = new TEST();
t.elem();
Ответить с цитированием
  #4 (permalink)  
Старый 26.10.2017, 12:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от polinin
поэтому сделал наподобие

Сообщение от polinin
document.body.innerHTML =
убить билла body!!!
Ответить с цитированием
  #5 (permalink)  
Старый 26.10.2017, 14:07
Новичок на форуме
Отправить личное сообщение для polinin Посмотреть профиль Найти все сообщения от polinin
 
Регистрация: 26.10.2017
Сообщений: 7

Сообщение от рони Посмотреть сообщение
убить билла body!!!
Хех. Это же была просто демонстрационная запись кода, чтоб проще и быстрее... Но все одно, спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS классы - как объединить функции в класс olga153b Events/DOM/Window 3 01.11.2011 14:13
Как из функции вызвать другую функцию и правильно передать ей параметр Alexd Общие вопросы Javascript 3 06.05.2011 03:42
Как вызвать функцию из функции ? PheonixS AJAX и COMET 7 20.06.2010 09:51
Как по событию вызвать метод определенного экземпляра объекта jvs jQuery 3 24.12.2009 16:04
Как внутри класса вызвать метод из соседнего метода Shahurik Общие вопросы Javascript 2 13.11.2009 12:20