Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 23.01.2010, 13:07
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Что то я не пойму как реализовать таймер, так в принципе пользоваться умею и 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++})????
Ответить с цитированием
  #22 (permalink)  
Старый 23.01.2010, 13:23
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

$.timer такой же конструктор, как и $, функция и параметры запоминаются в свойствах нового объекта, а метод start находится в прототипе $.timer, поэтому имеет доступ к свойствам объекта по ссылке this.
Ответить с цитированием
  #23 (permalink)  
Старый 23.01.2010, 14:05
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Ух вроде просто )) , буду пробовать, если честно я наверное не совсем к
ООП в js привык ).
Ответить с цитированием
  #24 (permalink)  
Старый 13.04.2010, 10:21
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Попробовал немного другой способ, и он вроде даже лучше и проще для понимания, можете оценить
<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>
Ответить с цитированием
  #25 (permalink)  
Старый 13.04.2010, 11:48
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Чем лучше?
Умножать матрицы не хочешь, в прототипах разбираться не хочешь… может забить тогда на все и не мучаться?)
Ответить с цитированием
  #26 (permalink)  
Старый 02.10.2016, 23:43
Аспирант
Отправить личное сообщение для WarDoctor Посмотреть профиль Найти все сообщения от WarDoctor
 
Регистрация: 02.01.2015
Сообщений: 32

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

</html>
<script>
function $(id)
{
this.load = function() {alert(1);}
}
$('my').load();
</script>
Кодировать надо правильно...
Код:
$('#my').load();
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как это сделать oxotnik Общие вопросы Javascript 11 19.01.2010 09:57
Как это сделать? PAMAC Общие вопросы Javascript 2 10.10.2009 21:02
Как сделать, чтобы музыка <embed> на странице не играла только при первом посещении? Bad Request Общие вопросы Javascript 22 27.07.2009 19:44
Как сделать чтобы картинка не открывалась по ссылке а скачивалась test Общие вопросы Javascript 4 20.06.2009 08:35
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24