динамическое имя переменной
Всем привет!
У меня есть скрипт, который работает с переменными созданными перечислением.
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, время: 20:40. |