Формирование рабочей функции
Недавно столкнулся я с проблемой объёмного js.
Суть вот в чём: имеются 11 элементов, которым нужно указать .css({'margin-top':'...'}); Я занёс их в массив: var sort1=["selectmenu1","selectmenu2","selectmenu3","selectmenu4","selectmenu5","creategame", "gametitle", "playersnumber", "resultcreate", "gamecreate", "listgame"]; и ещё 5 элементов на .css({'margin-left':'...'});: var sort2 = ["creategame", "gametitle", "playersnumber", "resultcreate", "gamecreate", "listgame"]; Далее, есть ключи на них: var key1 = ["0.1", "0.15", "0.2", "0.25", "0.3", "0.25", "0.3", "0.38", "0.42", "0.46", "0.15"]; var key2 = ["0.35", "0.375", "0.4", "-0.1", "0.375", "0.21"]; И всё, я циклом прогоняю эти массивы, получаем (jquery) : $(document).ready(function(){ setTimeout(function(){ for (var name1 = 0; name1<11; name1++) {document.getElementById("scripter").innerHTML = document.getElementById("scripter").innerHTML + '$(document).ready(function(){$("#' + sort1[name1] + '").css({"margin-top" : "' + key1[name1]*screen.height + '"})}); '} for (var name2 = 0; name2<5; name2++) {'$("#' + sort2[name2] + '").css({"margin-top" : "' + key2[name2]*screen.width + '"});'} },5000); }) Итогом этого прогона является текст: $(document).ready(function(){$("#selectmenu1").css({"margin-top" : "76.80000000000001"});})$(document).ready(function(){$("#selectmenu2").css({"margin-top" : "115.19999999999999"});})$(document).ready(function(){$("#selectmenu3").css({"margin-top" : "153.60000000000002"});})$(document).ready(function(){$("#selectmenu4").css({"margin-top" : "192"});})$(document).ready(function(){$("#selectmenu5").css({"margin-top" : "230.39999999999998"});})$(document).ready(function(){$("#creategame").css({"margin-top" : "192"});})$(document).ready(function(){$("#gametitle").css({"margin-top" : "230.39999999999998"});})$(document).ready(function(){$("#playersnumber").css({"margin-top" : "291.84000000000003"});})$(document).ready(function(){$("#resultcreate").css({"margin-top" : "322.56"});})$(document).ready(function(){$("#gamecreate").css({"margin-top" : "353.28000000000003"});})$(document).ready(function(){$("#listgame").css({"margin-top" : "115.19999999999999"});}) в <script id="scripter"></script> А мне нужно, чтобы строка выводилась, и значения сразу применялись к указанным элементам. Как это сделать? |
До этого нужно было писать 16 (!) строчек однотипного кода:
document.getElementById... or $("#..").css... , и их нельзя было объединить, потому что значения разные. |
Ну вот и решение:
нужно было генерировать стили в спец.тег : <style id="scripter"></style> и без всяких jquery обошлось |
Часовой пояс GMT +3, время: 11:29. |