Javascript-форум (https://javascript.ru/forum/)
-   Prototype & script.aculo.us (https://javascript.ru/forum/prototype-script-aculo-us/)
-   -   как получить доступ к переменной в классе (https://javascript.ru/forum/prototype-script-aculo-us/34392-kak-poluchit-dostup-k-peremennojj-v-klasse.html)

aleks_lv 03.01.2013 01:21

как получить доступ к переменной в классе
 
создается приблизительно ну вот такой класс и объект этого класса
var myClass=Class.create(
       { initialize:function()
                                { this.msg="hello" ;
                                  } ,
          displays:function()
                  { $$('div')[0].observe('mouseover',
                                       function(event) 
                                         {this.setStyle({backgroundColor:'red'});
                                           this.insert(this.msg);
                                            })
           }
       }
     )

       var ty=new myClass();
        ty.displays();

такой вот html
<div style="background-color: #6666FF">&nbsp;</div>

в displays не знаю как получить доступ к this.msg ....так как сейчас то не работает..
this.insert(this.msg)
как то может через bind ()??

valyan 21.07.2013 22:15

Здравсвтуйте. У мена аналогичный вопрос - есть "класс"
function MyClass()
{
  this.Show(par1, par2)
  {
    // текст функции
  }
  this.Create(par1, par2)
  {
    // текст функции
  }
  this.Destroy(par1, par2, par3)
  {
    // текст функции
  }
}

И есть страничка, содержащая ссылку
....
<script type="text/javascript">
        var MyCl = new MyClass();
    </script>
<a href="#" onclick="MyCl.showMap(\'YYID\', mymas);return false;">показать карту</a>
...

Как мне вызвать метод "класса", ну или обратиться к переменной класса? Я только начинаю изучать javascript, так что не пинайте)). Заранее спасибо!

danik.js 21.07.2013 22:32

Так и обращаться, как ты обращаешься. У тя походу полно ошибок. Твой "класс" имеет какой-то странный синтаксис, смахивает на недо-TypeScript. Открой консоль в браузере и увидишь все.

valyan 22.07.2013 11:29

Вот пытаюсь сделать так:
function MyClass(Cont)
{
    this.Container = Cont;
    this.showMap = function()
    {
        try
        {
            YMaps.jQuery(function() {
                // Создание экземпляра карты и его привязка к созданному контейнеру
                mapContainer = YMaps.jQuery('#' + this.Container), map = new YMaps.Map(mapContainer[0]);

                // Контейнер для карты делаем видимым
                mapContainer.css("display", "");

                // Установка для карты ее центра и масштаба
                map.setCenter(new YMaps.GeoPoint(49.124800, 55.787700), 10);

                // опции карты
                //map.enableScrollZoom();
                map.addControl(new YMaps.ToolBar());
                map.addControl(new YMaps.TypeControl());
                map.addControl(new YMaps.Zoom());
             
        }
        catch (e)
        {
            alert(e.toString());
        }
    }
}


<script type="text/javascript">
  var mymas = null;
  var MyClas = new MyClass(\'YMapsID\');
</script>
<a href="#" onclick="MyClas.showMap();return false;">показать карту</a>

Вылетает на
map.setCenter(new YMaps.GeoPoint(49.124800, 55.787700), 10);

Правильно ли я делаю? В чем моя ошибка?

skrudjmakdak 22.07.2013 11:40

Цитата:

Сообщение от valyan (Сообщение 263535)
Вылетает на
map.setCenter(new YMaps.GeoPoint(49.124800, 55.787700), 10);

Правильно ли я делаю? В чем моя ошибка?

а в консоли что пишет? текст/описание ошибки

mta88 22.07.2013 11:43

Цитата:

В чем моя ошибка?
в неумении задавать вопросы:)
Цитата:

Вылетает на
map.setCenter(new YMaps.GeoPoint(49.124800, 55.787700), 10);

например, какая именно здесь выдается ошибка?

valyan 22.07.2013 11:49

Извиняюсь...
Текст ошибки
"'this.coordSystem' -  есть null или не является объектом"

Щас погуглю...

Что-то никаких результатов...

valyan 22.07.2013 12:55

как побороть ошибку?:)

mta88 22.07.2013 13:04

Цитата:

Сообщение от valyan (Сообщение 263560)
как побороть ошибку?

все равно мало информации, чтобы что-нибудь придумать

может yandex-api не догрузилось
почему кстати первая версия а не вторая?

mapContainer = YMaps.jQuery('#' + this.Container);
map = new YMaps.Map(mapContainer[0]);
mapContainer.css("display", "");

может стоит поменять вторую и третью строки
третья строка вообще странная какая-то

Danoldnelf 13.08.2015 21:23

как получить доступ к переменной в классе
 
Подскажите пожалуйста как получить доступ к полученой таблице после SQL-запроса в компонентах ADO?


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