Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   $('my').load(); Как сделать, чтобы это заработало (https://javascript.ru/forum/misc/7106-%24-%27my%27-load-%3B-kak-sdelat-chtoby-ehto-zarabotalo.html)

mycoding 23.01.2010 13:07

Что то я не пойму как реализовать таймер, так в принципе пользоваться умею и setTimeout и setInterval и clearIterval
Но вот, думаю какой код делать
Такой ?
$.timer(50,function(){i++}).start();

Если такой, то как start определить, она же должна будет вызывать функцию setInterval, тогда её нужно будет иметь доступ к аргументам в timer, т.е. к 50 и function(){i++}, и к тому , чтобы её потом можно было остановить, нужно присвоить значение
т.е.
timer1=setIneterval(function(){i++},50);

И откуда этот timer1 , и делать ли его глобальным?


Или вот такой код?
$('timer1').timer(50,function(){i++});

Но в этом случае придётся вообще весь получившийся framework (хотя он маленький пока) переделывать. Поэтому отпадает.

и как вообще определять start() ? Должен ли он значения какие нибудь принмать, и должен ли возвращать как и другие себя следующим образом
return this;


Посмотрел как в js-core сделано, пока не догоняю )))
Хотя на вид вроде просто.

Главный вопрос, как потом из start() получить данные переданные в timer(50,function(){i++})????

Octane 23.01.2010 13:23

$.timer такой же конструктор, как и $, функция и параметры запоминаются в свойствах нового объекта, а метод start находится в прототипе $.timer, поэтому имеет доступ к свойствам объекта по ссылке this.

mycoding 23.01.2010 14:05

Ух вроде просто )) , буду пробовать, если честно я наверное не совсем к
ООП в js привык ).

mycoding 13.04.2010 10:21

Попробовал немного другой способ, и он вроде даже лучше и проще для понимания, можете оценить
<script>
function $$(id)
{
switch (typeof id)
{
 case "object":
  return id;
  break;
 case "string":
  if(id.search("#")!=-1)
  {   
   var referenceId=id.replace("#","");      
   var element=document.getElementById(referenceId);
   if(element){return element;}
   else {alert("Данного элемента не существует.\ndocument.getElementById(referenceId) вернула\n"+element);}
  }
  else {alert("Элемент надо указывать так:#id");}
  break;
 case "function":
  alert("function");
  break;
 default:
  alert("Этот тип не поддерживается");
}

}

function $(id)
{
this.id=id;
this.cout=cout;
this.onready=onready;
return this;
}
function cout(text){$$(id).innerHTML=text;};

function onready(toMake)
{
switch (typeof toMake)
{
 case "function":
  window.onload = toMake;
  break;
 case "string":
  window.onload = function(){eval(toMake);}
  break;
 default: alert("Ошибка в функции onready:Этот тип не поддерживается\n");
}
}
$.alert = function(text){ alert(text);}

$(document).onready("$('#test').cout('Привет');");

$.alert("Привет");

</script>
<html>
<head>
<title> Классы </title>
</head>
<body>
<div id="test"></div>
<button onclick="$('#test').cout('Ух ты');">Нажать</button>
</body>
</html>

Octane 13.04.2010 11:48

Чем лучше?
Умножать матрицы не хочешь, в прототипах разбираться не хочешь… может забить тогда на все и не мучаться?)

WarDoctor 02.10.2016 23:43

Цитата:

Сообщение от mycoding (Сообщение 40711)
Подскажите, Как сделать, чтобы это заработало.
Начинка не важна , главное сама структура записи класса
<html>
<body>
ljkj
<div id=my>HI</div>
</body>

</html>
<script>
function $(id)
{
this.load = function() {alert(1);}
}
$('my').load();
</script>

Кодировать надо правильно...
Код:

$('#my').load();



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