Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как задается класс динамически созданного объекта?
 
 автор: avv   (18.04.2007 в 10:46)   письмо автору
 
 

В документ требуется вставить картинку, которая расположена в определенном месте страницы и является ссылкой. Чтобы этого добиться я создаю элемент div, определяю его класс для описания его стиля (фактически там и задана позиция), в div е создаю ссылку и в ссылке картинку.

<head>
<style type=text/css>
img { border-style: none;}
.test {position:absolute; left:180; top:60;}
</style>
</head>
<body>
<script tipe="text/javascript">
var elm1, elm2, elm3;

elm3=document.createElement("img");
elm3.setAttribute("src", "ba.png");

elm2 = document.createElement("a");
elm2.setAttribute("href", "#");
elm2.setAttribute("title", "link");
elm2.appendChild(elm3);

elm1 = document.createElement("div");
elm1.setAttribute("class", "test");
elm1.appendChild(elm2);

document.body.appendChild(elm1);
</script>
</body>

В 9 опере все работает как надо. В 6 експлорере позиционирование не происходит. В чем здесь дело и как это побороть. Как я понимаю проблема с установкой class.

   
 
 автор: AlexSol   (18.04.2007 в 10:50)   письмо автору
 
   для: avv   (18.04.2007 в 10:46)
 

коортинаты надо указывать в каких-либо единицах : точки, пиксели, пункты, сантиметры, ...

   
 
 автор: avv   (18.04.2007 в 11:00)   письмо автору
 
   для: AlexSol   (18.04.2007 в 10:50)
 

Изменил на:
.test {position:absolute; left:180px; top:60px;}
Все осталось без изменений.

   
 
 автор: AlexSol   (18.04.2007 в 11:13)   письмо автору
 
   для: avv   (18.04.2007 в 11:00)
 

я так присваивал для body
document.body.className="cls";

   
 
 автор: RMW   (18.04.2007 в 11:23)   письмо автору
 
   для: avv   (18.04.2007 в 10:46)
 

http://xpoint.ru/know-how/JavaScript/Atributyi?8

   
 
 автор: avv   (18.04.2007 в 11:54)   письмо автору
 
   для: RMW   (18.04.2007 в 11:23)
 

Всем большое спасибо!!!
Microsoft в своем репертуаре…
Заработал вариант с className для IE и с class для Op. Я вот только не понял из описания -
«Иначе говоря, для изменения класса рекомендуется установить несуществующий атрибут className (менять регистр букв нельзя!). С такой рекомендацией Microsoft сложно согласиться — в кроссбраузерных приложениях придется устанавливать два атрибута, один из которых не имеет никакого смысла. Проще изменить свойство className, это работает одинаково надежно во всех браузерах».
Как это выглядит в жизни? Я имею в виду как это записать то?

   
 
 автор: RMW   (18.04.2007 в 13:00)   письмо автору
 
   для: avv   (18.04.2007 в 11:54)
 

Имеется ввиду, что HTML атрибут className не существует, есть атрибут class,
но есть свойство объекта JS - className, что проще и надёжней
присвоить свойству className нужное значение

document.body.className="cls";

Т.е. в вашем случае: сначала создаёте объект,
вставляете в документ а потом используете className.
Наверно где-то так:

var elm1 = document.createElement("div");
elm1.setAttribute("id", "myDiv");
document.body.appendChild(elm1);
document.getElementById('myDiv').className='test';

   
 
 автор: avv   (18.04.2007 в 13:07)   письмо автору
 
   для: RMW   (18.04.2007 в 13:00)
 

Все! Дошло…
Еще раз всем большое спасибо!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования