Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как повесить на событие функция класса (https://javascript.ru/forum/misc/12858-kak-povesit-na-sobytie-funkciya-klassa.html)

Hugo_O 05.11.2010 20:26

как повесить на событие функция класса
 
function class()
{
     this.id = "id1";
     this.id2 = "id2";
     
     document.getElementById(this.id).onmouseover =   this.func("#000");

     this.func = function(val)
     {
          
          document.getElementById(this.id2).style.background = val;
     }
}


как правильно записать, чтобы заработало, смысл думаю всем понятен.

Sweet 05.11.2010 20:58

Цитата:

Сообщение от Hugo_O
смысл думаю всем понятен

Конечно, понятен. Ты насилуешь javascript:)

Sweet 05.11.2010 21:11

<div id="div1">Наведи сюда</div>
<div id="div2">чтобы раскрасить это</div>

<script>
function fuckingClass(rev, rel, color){
  this.func = function(){
    document.getElementById(rel).style.background = color;
  };
  document.getElementById(rev).onmouseover =   this.func;
};

var realizeThisShit = new fuckingClass('div1', 'div2', '#0FC');
</script>

Hugo_O 05.11.2010 21:50

Sweet,
м*я это был просто пример, чтобы разобраться, и говоря "смысл думаю всем понятен" я ошибься, оказывается не всем

Kolyaj 05.11.2010 21:53

Зачем вы вызываете функцию и результат её работы (т.е. undefined) присваиваете свойству onmouseover элемента?

Hugo_O 05.11.2010 23:02

Kolyaj,
это ПРИМЕР, если бы я знал сначала как сделать, я бы не написал вообще

но подсказали уже:
_this = this;
 document.getElementById(this.id).onmouseover =  function(){_this.func()};

Kolyaj 05.11.2010 23:05

Цитата:

Сообщение от Hugo_O
это ПРИМЕР

Ну так у меня и вопрос наводящий, вы же вроде как понять хотите, а не тупо код написать, лишь бы работало.

Sweet 05.11.2010 23:11

Думаю, что для начала нужно понять, что в javascript НЕТ КЛАССОВ!:) Можно ведь не только тупо писать код, но и писать "тупой" код:)

Hugo_O 05.11.2010 23:33

Kolyaj,
да, теперь я понял как передать содержимое исходного экземпляра в событие, а не тупо написал код.


Sweet,
а может просто тут класс выглядит иначе, чем в других языках?

Sweet 05.11.2010 23:49

Hugo_O, как вам удобнее;) Если угодно использовать грубые и угловатые ...подобные конструкции - пожалуйства:victory:


Часовой пояс GMT +3, время: 19:28.