Javascript.RU

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

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)

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 10.12.2010, 14:18
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Не уверен, что я вас правильно понял, но все-таки:
<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" />
Ответить с цитированием
  #3 (permalink)  
Старый 10.12.2010, 14:40
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

wbutton.onclick = (function (obj) {
	return function () {
		alert( [obj, obj.a] );
	}
})(this);
Ответить с цитированием
  #4 (permalink)  
Старый 10.12.2010, 15:01
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

<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>
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2010, 19:51
Новичок на форуме
Отправить личное сообщение для leha66 Посмотреть профиль Найти все сообщения от leha66
 
Регистрация: 07.12.2010
Сообщений: 7

Всем большое спасибо за ответы!
Буду разбираться
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28
menu с выпадающими подменю при наведении и раздвижное при клике bugor Элементы интерфейса 3 04.10.2010 14:32
стили input при событии onFocus SerjRamone Элементы интерфейса 11 08.07.2010 15:58
Двойное действие при клике по ссылке spider Элементы интерфейса 5 10.11.2009 10:43
Смена картинки (бекграунд дива ) при событии (нажатие клавиш или клавиши и мыши) Monster Events/DOM/Window 5 01.11.2009 01:16