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, время: 15:51. |