Хак или нет? (нестандартные аттрибуты HTML тэгов)

Heresy

Новичок
Хак или нет? (нестандартные аттрибуты HTML тэгов)

PHP:
<div id="test"></div>
<script>
document.getElementById("test").test = new Image();
</script>
Это как, нормально?
Или лучше так не делать?
 

pilot911

Новичок
это бессмысленный код просто :)
нельзя присвоить тегу объект, насколько я знаю

ты вообще что хотел сделать ?
 

Heresy

Новичок
Не знаю, "можно" или нет, но работает ведь.
По крайней мере в IE и Firefox.

Но судя по реакциям, делать так всё же не стоит :)

ты вообще что хотел сделать ?
Сократить размер кода в одном скрипте...
 

Crys

Двинутый новичок
Никаких хаков и глюков тут нет. Это вполне нормальный код. Вот только применение ему найти тяжеловато.. Такое обычно используется при неправильном планировании скрипта.

-~{}~ 22.02.09 23:49:

Сократить размер кода в одном скрипте...
Это каким макаром? Можешь более подробный пример показать?
 

cDLEON

Онанист РНРСlub
Вообще - отличная практика.
В данном случае ты присваиваешь не атрибут, а создаёшь дополнительное свойство объекта DOM. Точно такая же как и
element.onchange=function() {
}

-~{}~ 23.02.09 00:52:

Такое обычно используется при неправильном планировании скрипта.
Ну если присваивать имэйдж, то немножко странное использование...
А вот если какой-нибудь конкретный свой объект по-типу тултипа...
То почему бы и нет ?
 

Crys

Двинутый новичок
Точно такая же как и
Не совсем. onchange - это стандартный атрибут. Он же хочет нестандартный. Зачем?

Вот для такого?
Код:
<div id="test"></div>
<div id="test2"></div>
<script>
var a = new Image();
document.getElementById("test").test = a
document.getElementById("test").test.setAttribute('src','1.gif');
document.getElementById('test2').appendChild(document.getElementById("test").test);
</script>
Смысл?

-~{}~ 22.02.09 23:59:

А вот если какой-нибудь конкретный свой объект по-типу тултипа...
Тоже странно будет...

document.getElementById("test").tool = new Tooltip('Йайайа','test');
document.getElementById("test").tool.show();

Такое? А почему нельзя просто в нужном месте сделать:
var t = new Tooltip('Йайайа','test');
t..show();
?

По-любому придется обращаться по ID...
 

Heresy

Новичок
Ну, я упростил.
На самом деле не Image, а массив Image'й.

Допустим, наводим мышку на div, начинается слайдшоу, уводим - прекращается. Дивов много, все картинки должны быть кэшированы заранее, чтобы не подгружаться во время слайдшоу, да и адреса у них уникальные...


Так почему бы не присвоить кажому диву его массив с картинками?
В текущей версии скрипта я создал двухмерный массив типа image_list[div_id][image_num], и как раз тут приходится обращаться по ID...
А в случае с this.images[image_num] - не придётся.
 

Crys

Двинутый новичок
Все-равно ничего толком непонятно. Если считаешь, что так будет лучше - делай, т.к. это можно.
 

dimagolov

Новичок
JS так задумывался, чтобы налету свойства объектам добавлять-удалять и вообще творить с ними все что угодно. пока свойства не совпадут с теми, что уже имеются в DOM или пользуются какими-то библиотеками, то все ОК

п.с. не путайте свойства и атрибуты. атрибуты это то, что прописывается в теге типа <a href="zzz"> и это всегда СТРОКА. А вот свойства могут иметь любой тип. Правда, ИЕ разницу между ними не делает, из за чего возникают казусы временами.
 

cDLEON

Онанист РНРСlub
document.getElementById("test").tool = new Tooltip('Йайайа','test');
document.getElementById("test").tool.show();

Такое? А почему нельзя просто в нужном месте сделать:
var t = new Tooltip('Йайайа','test');
t..show();
Имелся ввиду оригинальный тултип(для данной ссылки, например, который всплывает по онклику), который нужно генерить один раз, а потом только показывать.
 
Сверху