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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ссылка на объект, кроме this 
V
    Опции темы
bondarenko_a
Дата 16.11.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Помогите пожалуйста человеку!
Как сделать в функции ссылку на объект не из этого объекта а из самой функции, передачей id  как параметра.
У меня не получается
Код

function wid(ob)
   {
if(document.getElementById(ob).style.posTop<300)
{
document.getElementById(ob).style.posTop=document.getElementById(ob).style.posTop+1;
setTimeout("wid(ob)",10);
}
}


вызываю функцию так:
Код

 onclick="javascript:wid('grey');" 

У меня какая то синтаксическая ошибка?

Это сообщение отредактировал(а) bondarenko_a - 16.11.2006, 16:46
PM MAIL   Вверх
GIK
Дата 16.11.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Вообщето нельзя вызывать из setTimeout("wid(ob)",10); функцию с параметрами. убирай объект ob.


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


Шустрый
*


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

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



А как же обратиться к конкретному объекту? 
PM MAIL   Вверх
Nicholas_S
Дата 16.11.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 5
Всего: 19



Так напиши: setTimeout("wid('"+ob+"')",10);


--------------------
...все в мире относительно
PM   Вверх
12345c
Дата 16.11.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Как обычно, по имени. Передавайте не объект, а имя (строку), которое можно будет вставить в строку функции setTimeout

Добавлено @ 17:02 
Нет, то, что выше (setTimeout("wid('"+ob+"')",10); ) , будет верно, если ob - строка.
PM WWW   Вверх
GIK
Дата 16.11.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(bondarenko_a)

А как же обратиться к конкретному объекту?  

Да как обычно smile  но если очень хочешь реализовать вызов c помощью таймера и при эот передавать объект, то можно вызывать функцию которая в свою очередь будет вызывать целевую функцию wid() c аргументом ob.



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


Шустрый
*


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

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



Спасибо, Nicholas_S, 

PM MAIL   Вверх
Nicholas_S
Дата 16.11.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 5
Всего: 19



bondarenko_a, а, нзчт!  smile 

12345c, если внимательно посмотришь, ob - строка, возвращается объект по ID: document.getElementById(ob)...


--------------------
...все в мире относительно
PM   Вверх
bondarenko_a
Дата 16.11.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну да ob - строка.
Эта функция может быть применима к разным объектам с разными id. Поэтому парамтр здесь - id.
А как сослаться на обьект? И изменять его параметры с пом переменной (без this)???

Это сообщение отредактировал(а) bondarenko_a - 16.11.2006, 17:08
PM MAIL   Вверх
Nicholas_S
Дата 16.11.2006, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 5
Всего: 19



bondarenko_a, не очень понял вопрос. document.getElementById(ob) - и есть ссылка на объект, это оптимальный вариант.


--------------------
...все в мире относительно
PM   Вверх
bondarenko_a
Дата 16.11.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Nicholas_S, Серьезно?
Так и запишем. smile

Просто в учебниках есть примеры, когда функции вызываются из самих объектов ссылкой this и в самой функции не требуется писать конструкцию document.getElementById(ob).bla.bla.bla, а достаточно this.bla.bla.bla. А если функция вызывается не из самого объекта, то так не получится. smile
PM MAIL   Вверх
Nicholas_S
Дата 16.11.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 5
Всего: 19



bondarenko_a, правильно. Не юзай this в данном примере.


--------------------
...все в мире относительно
PM   Вверх
Avb
Дата 16.11.2006, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: 4
Всего: 13



bondarenko_a, выложи, плиз, пример и напиши, что конкретно в этом примере хочешь получить. Чувствую, что сделать так как ты хочешь можно, но не совсем понимаю в чем именно вопрос.
PM MAIL   Вверх
bondarenko_a
Дата 16.11.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Avb, Я пока не работаю над такой задачей. Но вполне могу с ней столкнуться.
Например, есть такая функция:
Код

function validate(obj, lowval, hival) {
    if ((obj.value < lowval) || (obj.value > hival))
      alert("Invalid Value!")
}

В примере ее вызывают из самого объекта:
Код

 onChange="validate(this, 18, 99)"


А если эту функцию надо вызвать из другой функции, или из другого объекта. Как передать ссылку на объект с уникальным id, или массив подобных объектов?

З.Ы. Не кидайте в меня камнями. Для меня javascript - новое и неизученное.
PM MAIL   Вверх
GIK
Дата 16.11.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Код

<html>
<head>
<script>
var eee, iii=12, id, tim;
function wid(ob){
id=ob;
if(parseInt(document.getElementById(id).style.left)<=120)
 { iii++;
 document.getElementById(id).style.left=iii;
 tim = window.setInterval("ggg()",10);
 }
}
function ggg(){
clearInterval(tim);
wid(id);
}

</script>
</head>
<body>
<div id="grey" style="position:absolute; top:120; left:12;">grey</div>
<input type="button" onclick="wid('grey')" value="get"> 
</body>


Добавлено @ 17:43 
Цитата(bondarenko_a)

А если эту функцию надо вызвать из другой функции, или из другого объекта. Как передать ссылку на объект с уникальным id, или массив подобных объектов?

Ссылку можно создать в ДРУГОЙ функции, например так var ebjeckt=document.getElementById("id"); и передать ее куда угодно, а еще есть возможность передавать ссылку на объект,  глобальной переменной (определенной вне функций) и использовать ее из других функций.


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


 




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


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

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