Как вызвать метод функции по клику элемента, созданного в этой функции?
Нужно сделать так чтобы клик по созданному в экземпляре функции элементу вызывал выполнение метода этого же экземпляра функции.
Ниже, в примере, предполагается, что при нажатии на кнопку "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();
|
Цитата:
Как вариант
<!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>
|
Понял, спасибо за наводку. Строку убрать не могу - в реальном коде нагляднее и удобнее строка, поэтому сделал наподобие этому:
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();
|
Цитата:
![]() Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 08:35. |