динамическое имя переменной
Всем привет!
У меня есть скрипт, который работает с переменными созданными перечислением. var my_tooltip_1 = new Tooltip('trigger_1', 'tooltip_1') var my_tooltip_2 = new Tooltip('trigger_2', 'tooltip_2') var my_tooltip_3 = new Tooltip('trigger_3', 'tooltip_3') Но их окло 100. Думал сделать массивом, типа этого for (jT=1; jT<100; jT++){ my_tooltip_+'jT' = new Tooltip('trigger_'+jT, 'tooltip_'+jT); } но динамически создавать имя переменной не плучается, можно использовать ivent, но эта функция не безопасна может кто знает что можно сделать Спасибо! |
|
Цитата:
Цитата:
Вам не нужны динамические имена переменных, они никому не нужны. Это плохо, взрывоопасно, и сплошные минусы без единого плюса. Для таких вещей придумали массивы и хэши. Роль хэшей в JS выполняют объекты. В вашем случае нужен обычный массив. |
Вложений: 1
Вообще весь этот модуль для вывода всплывающей подсказки. а тут загвоздка. не понятно где эта переменная используется, в коде ее нет, может как то объект берется по другому
<script type="text/javascript"> // а вот так работает без проблем и ошибок //var my_tooltip_1 = new Tooltip('trigger_1', 'tooltip_1') //var my_tooltip_2 = new Tooltip('trigger_2', 'tooltip_2') //заменил на это var arr = new Array() for (jT=1; jT<80; jT++){ arr = new Tooltip('trigger_'+jT, 'tooltip_'+jT); } Event.observe(window,"load",function() { $$("*").findAll(function(node){ return node.getAttribute('title'); }).each(function(node){ new Tooltip(node,node.title); node.removeAttribute("title"); }); }); а в прикрепленном файле код, который обрабатывает все это, и там нигде не нашел использование этих переменных my_tooltip_2,... |
Т.е. происходит следующее: по клику на элемент появляется окошко с содержимым title? А не проще ли на клик повесить функцию создания этого окна и передавать в нее this.title???
|
нашел в чем была проблема))
var arr = new Array() for (jT=1; jT<80; jT++){ arr = new Tooltip('trigger_'+jT, 'tooltip_'+jT); } а количество самих объектов было меньше 80, потому и ошибка была)) |
Часовой пояс GMT +3, время: 17:33. |