this при событии
Всем привет.
Такой скрипт: <html> <head> <title> Java Script </title> <script> function myclass(wbutton_name) { this.a = 5 this.change = func_change wbutton = document.getElementsByName(wbutton_name)[0]; wbutton.onclick = this.change } function func_change() { alert("change " + this.a + " " + this) } </script> </head> <body> <button name="next"> next </button> <script> var mc = new myclass("next") </script> </body> </html> После нажатия на кнопку выводится: "change undefined [object HTMLButtonElement]", то есть this во время нажатия соответствует кнопке. А можно ли как-то получить доступ к свойствам объекта? (то есть что бы this.a было равным 5) Спасибо. |
Не уверен, что я вас правильно понял, но все-таки:
<script type="text/javascript"> window.onload = function(){ document.getElementsByName('input')[0].onclick = function(){ alert(this.value = 5); }; } </script> <input type="button" name="input" value="click" /> |
wbutton.onclick = (function (obj) { return function () { alert( [obj, obj.a] ); } })(this); |
<html> <head> <script type="text/javascript"> Function.prototype.of = function( o ){ var f = this; return function(){ return f.apply( o, arguments ); }; }; function $( id ){ return typeof id == 'string' ? document.getElementById(id) : id; } function myclass(id) { this.a = 5; this.el = $(id); this.el.onclick = this.onClick.of(this); } myclass.prototype.onClick = function(){ alert("change " + this.a + " " + this); } </script> </head> <body> <button id="next">next</button> <script type="text/javascript"> var mc = new myclass("next") </script> </body> </html> |
Всем большое спасибо за ответы!
Буду разбираться :) |
Часовой пояс GMT +3, время: 18:35. |