Вызов функции через цикл
Есть несколько функций
q_1(){}; q_2(){}; ... q_10(){}; Почему так так нельзя вызвать? for(var i=2;i<11;i++) { if(j==i) q_'+i+'(); //q_.'+i+'.(); - это то же не работает } Название функции это не строка, понятно,но как реализовать вызов через цикл таких функций |
наверное потому что q_1 != question_1 ))
ну и для вызова функции есть eval function q_1 () { console.log (1); } function q_2 () { console.log (2); } for(var i=1;i<3;i++){ eval ("q_"+i+"()"); } |
Цитата:
Альтернатива на лицо! var fnc=[]; fnc[0]=function (){alert(0)}; fnc[1]=function (){alert(1)}; fnc[2]=function (){alert(2)}; for (var i=0; i<fnc.length; i++) { fnc[i](); }; |
animhotep
question опечатка конечно . В остальном спасибо |
Цитата:
|
Цитата:
В любом случае, если есть отличная альтернатива - зачем колхозить? ;) |
я слышал что eval это зло) но, думаю, тс-у на это глубоко накакать
все начинают с "абы работало", потом каждый сам решит что зло а что нет |
Цитата:
|
Мда уж :)
function q_1 () { console.log (1); } function q_2 () { console.log (2); } for(var i=1; i<3; i++) window['q' + i](); |
Здравствуйте KSA! Не получаеться загружать и подсчтитывать количество фреймов по мере их загрузки.
Хочу переходить на загрузку следующего ифрейма только по событию готовности прежнего- onload.Использовал конструкцию <iframe id="ifrm" src="demo.html" onload="doSomething()"></iframe> Исправно выдает алерт: onload=alert("Yes!") но передать это в инкримент-мучаюсь уже 4 дня: var i=0; while (i< 9) { iframe.onload = function() { alert('!!!!'); i++; www.document.write('<iframe width="700" height="700" src="'+linksarray[i].href+'"> </iframe> '); var iframe = www.document.getElementsByTagName('iframe')[0]; }; }; ................ПОМОГИТЕ ПОЖАЙЛУСТА............... |
И зачем ты 9 раз втыкаешь в .onload одно и то же? Чтобы глубже, типа, залезло?
|
Cпасибо! Я так проверяю докудова дотягивает цикл. Я тут неичего не вижу в таком языке. В асамблере мне было куда нагладней.Правда писанина была в высоту-а тут- в длину :) Последнее что сделал,но мне нужно это же самое, но токо для ифреймов...new Image();- не нашел такое для ифрейма...
javascript: var preloadedImg = new Image(); gotov=preloadedImg.src = "http://enya.msv.pl/wp-content/uploads/2016/05/SW-banner-2.jpg"; var x=0; while (x<3){ x++; var gg= function() { document.body.innerHTML+='<img src="'+gotov+'"</img>'; alert(gotov)} ; if(preloadedImg.complete) { gg() }; }; |
Расскажешь зачем тебе 9 яфреймов, я напишу тебе как из загрузить один за другим.
|
НУ не девять,а 3 если точнее.Я пытался через вайл инкриментить Х дабі подставлять его в порядковй номер найденых ссылок... Это для проверки_где заканчивается цикл.Я так делал в Ассемблере для микроконроллеров.Буду очень! благодарен такому для ифреймов так чтобы я понимал что происходит-те с while и вызовом функции по ее имени..
Я буду очень ждать на Вашу подСКАЗКУ, warren buffet !!! |
Цитата:
Поскольку на вопрос ты не ответил, то ищи решение сам. |
Я пытался через вайл инкриментить Х дабі подставлять его в порядковй номер найденых ссылок... Это для проверки_где заканчивается цикл.Я так делал в Ассемблере для микроконроллеров.Сократил прежнее до сути ответа.Помоги.
...Я понимаю так_Сначала нужно загрузить,а потом отрендерить document.body.innerHTML+='<img src="'+gotov+'"</img>'; или document.write('<img src="'+gotov+'"</img>'). Как раз как загрузить-я и не знаю... |
Часовой пояс GMT +3, время: 21:49. |