Как вызвать метод функции по клику элемента, созданного в этой функции?
Нужно сделать так чтобы клик по созданному в экземпляре функции элементу вызывал выполнение метода этого же экземпляра функции.
Ниже, в примере, предполагается, что при нажатии на кнопку "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, время: 16:37. |