Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача свойства объекта в вызов события 
:(
    Опции темы
Elfet
  Дата 10.2.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Код

function myobject(myid, x)
{
        this.myid = myid;
        this.x = x;
}

myobject.prototype.Set = function ()
{
        this.x.onclick = this.Click;

}
    
myobject.prototype.Over = function () 
{
        document.getElementById(this.myid).style.backgroundColor = this.id;
}

Вот здесь у меня не получается: document.getElementById(this.myid).style.backgroundColor = this.id; Видимо this.myid - неопределён пишет. Как здесь поступить?  smile 


--------------------
PM MAIL WWW Skype   Вверх
AKS
Дата 10.2.2007, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Elfet, у Вас наверняка метод Over одного из экземпляров констуктора myobject вызывается в ином контексте (на каком-нибудь HTMLElement'е), и там уже нет this.myid. Вообще, типичная ситуация с this. 
Объяснил бы сам, но повторяться не хочу, поскольку чаще, чем раз неделю писать одно и тоже "вредно". Вот здесь читайте объяснения, делайте выводы...
PM MAIL   Вверх
Elfet
Дата 10.2.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



А как лучше тогда делать? если мне нужно передать myid в Over? 

Это сообщение отредактировал(а) Elfet - 10.2.2007, 16:30


--------------------
PM MAIL WWW Skype   Вверх
GIK
Дата 10.2.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Наверное у тебя в другом ошибка? Кидай полный код. Непонятна реализация?
Вот так все работает:
Код

<html>
    <head>
        
        <script type="text/javascript">
   
     function myobject(myid, x)
  {
        this.myid = myid;
        this.x = x;
  }

   myobject.prototype.Set = function ()
   {
        this.x.onclick = this.Click;

   }
    
   myobject.prototype.Over = function () 
   {
        document.getElementById(this.myid).style.top = this.x;
   }


  function ff(){
  var m_o= new myobject('my_id', 120);
  m_o.Over();
 }




        </script>
    </head>

    <body>
       <div id='my_id' style="position:absolute;top:12;left:120;color:567789;" >12345</div>
       <input type="button" value=get onClick="ff()">
            
    </body>
</html>



--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
Elfet
Дата 10.2.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



GIK, ты не совсем понял, Over должна вызываться событием onclick. Мне нужно с помощью её получить id объекта вызвавшего событие.




--------------------
PM MAIL WWW Skype   Вверх
GIK
Дата 10.2.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Понял.
Теперь только непонятно, для чего тебе использовать свойства объекта (функции)? Другие спорсобы не подходят? Кинешь ссылку на объект, который сгенерил событие и от нее доставай что хочешь.


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
AKS
Дата 10.2.2007, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Elfet
Для того, чтобы "сохранить" ссылку на объект, чьи методы Вы используете, надо примерно так:
Код

myobject.prototype.Set = function () {
    var thisObjContext = this;
    this.x.onclick = function (e) { thisObjContext.Click(e); };
}

Ну а ID элемента, на котором обрабатывается событие click, в функции получите как-нибудь так:
Код

var el = window.event ? event.srcElement : e.target;
var ID = el.id;


PM MAIL   Вверх
Elfet
Дата 10.2.2007, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



AKS, ок, спасибо! 


--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.