Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » Java/Java Scripts » Доступ к объектам создаваемым на лету
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
Доступ к объектам создаваемым на лету [сообщение #78141]

Ситуация такая: Есть на странице группа чекбоксов, у каждого уникальный ID типа cb_n_nn
n - уникальное число группы
nn - id элемента

Посредствам JS из списка можно выбрать опции которые налету прибавляют к существующим чекбоксам дополнительные. Для добовления используется innerHTML. Проблема в том что нужно получить доступ к объектам чекбокса, для этого используем
document.getElementById(cb_n_nn)
Все хорошо работает с теми боксами которые существуют уже в страничке а вот к новым, которые были добавленны потом при помощи JS доступа нет, как-будто их не существует. Как с этим бороться?

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 01:15
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #78142]

Если попытка доступа буквально в той же ф-ии что и создание, то не лишним попробовать setTimeout(). Возможно объекты просто не успели создаться.

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 01:57
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #78144]

В тойже функции, но уже при повторном вызове. Ð_то вообще нужно для того чтобы проверить выбран ли бокс и если выбран то при обновлении списка вывести выбранные тоже с галочкой. Кстати, забыл сказать: объекты создаються обычным html, в этом наверное и проблема. Есть ли в таком случае возможность обратится к ним?

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 02:04
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #78145]

Я вообще припоминаю что ИЕ не понимал объекты созданные через DOM, но с inner/outer html вроде всё было в порядке.

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 02:12
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #78146]

К сожелению нет . Ни ИЕ ни firefox их не видит.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 02:43
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #78152]

Даже gecko не видит? Странно. И какую ошибку он выдаёт?

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 11:01
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #78153]

нет ошибок, ну конечно я проверяю существует ли объект, но если допукать ошибку то выдает:
var_name has no properties

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 11:32
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #78155]

Так это не ошибка доступа, а отсутствие объекта. Скорей всего ты где-то ошибся в ID или объект не был создан вообще.

В частности gecko-браузеры вообще не имеют свойства innerHtml. Его надо реализовывать дописывая прототип для HTMLElement.

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 13:13
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #78164]

RaZEr никаких ошибок нет, уже повторно с этим сталкиваюсь. прототип создан и innerHtml работает прекрасно. Потом при выводе массива _POST все данные созданные динамически через JS присудствуют.

polo добавил 28-08-2005 в 20:22:05:
Вот пример того что я пытаюсь сделать:

code:

<SCRIPT>
// Emulation of innerText for Mozilla.
if (window.HTMLElement && window.HTMLElement.prototype.__defineSetter__) {
  HTMLElement.prototype.__defineSetter__("innerText", function (sText) {
     this.innerHTML = sText.replace(/\&/g, "&").replace(/</g, "&lt;").replace(/>/g, "&gt;");
  });
  HTMLElement.prototype.__defineGetter__("innerText", function () {
     var r = this.ownerDocument.createRange();
     r.selectNodeContents(this);
     return r.toString();
  });
}
function add_com()
{
	// получаем данные объекта
	obj = document.getElementById('comment');
	// создаем обект если не существует
	if (!obj)
	{
		obj = document.createElement('input');
		obj.type = 'hidden';
		obj.id = 'comment';
		obj.name = 'comment';
		obj.value = '';
		form_hd = document.getElementById('fields');
		form_hd.appendChild(obj);
	}
	// запрашиваем данные
	var comment = prompt('Изменить комментарий', obj.value);
	obj.value = comment;
	fill_data();
}
function fill_data() {
	obj = document.getElementById('input');
	data_out = document.getElementById('data');
	var val = (obj) ? obj.value : 'объект не найден, тут ошибка';
	data_out.innerHTML = 'Комментарий: ' + val;
}
</SCRIPT>


<a href="#" onClick="add_com();">add comment</a> 
<span id="data"></span>
<span id="fields"></span>

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 19:46
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #78165]

quote:
RaZEr никаких ошибок нет
Как сказать ... ты создаёшь объет с id=comment:

obj.id = 'comment';

а потом выбираешь по id=input:

obj = document.getElementById('input');

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 20:43
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #78166]

Ты прав, это ошибка. Чтож у меня на странице не работает? Пойду разбираться.

polo добавил 28-08-2005 в 21:43:23:
Тьфу ты блин, всему виной была функция которая осуществляла получение объекта. Некорректно работала с созданными объектами. Тему можно считать закрытой.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-08-2005 20:54
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 14:28.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.01185989 seconds (56.25% PHP - 43.75% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.