Ogalig
User-
Posts
172 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Ogalig
-
Разметка на дивах выглядит более красиво а сайт получается более оптимизированым, нежели его бы делали на таблицах. Если это не критично то можно делать и на таблицах.
-
Св-ва текущей страницы на фулл скрин поменять нельзя. Это зделано из соображений безопасности. Такой параметр можно задать только открываемому окну.
-
Мне бы было неудобно пользоваться таким деревом, если честно. Искать какой карандаш какой строчке соответствует ..
-
Мне кажется адаптировать пот себя кем-то написанное намного сложнее чем написать самому...
-
Можно диву просто цвет бэкграунда указать, тогда он будет расширятся как надо и без пробелов. По моему работает даже background-color:Transpered (сори за грамматику).
-
Изменить цвет фона страницы не имея доступа к ее коду
Ogalig replied to nasibullin's question in HTML Coding
<style>body html {background-color:Red;} </style> Усли не поможет можно попробовать скриптом. document.body.style.backgroundColor="Red"; -
Два варианта отличаются только атрибутами name у инпута? Или я еще что-то недосмотрел?
-
Тогда только динамически высчитывать высоту. Можно еще хедер и меню положить во абсолютно позиционированную таблицу, но это изврат.
-
Я имел ввиду что в том варианте что ты предложил у всех строк во всех таблицах для которых написан этот скрипт должен быть один и тот же класс, в то время как в большинстве случаев он разный у строк в одной и той же таблице или вообще динамически меняется скриптом. Доработал код.Таблица и ксс сильно не изменились с прошлого раза, так что не выкладываю. Теперь кнопка может лежать в любой ячейке. Родитель так же высчитывается динамически в бесконечном цикле (предпочел не выносить поиск в отдельные функции). Единственное что пока я привязываюсь к имени тега, и не обошел ту ситуацию про которую ты рассказывал, но еще поломаю голову над этим, так просто я не сдамся . На вскидку придумал еще один вариант. Оборачивать таблицу в див с нужным именем (имя в таблице в фоксе задавать нельзя), и наткнувшись на див можно определить нужную таблицу, а следовательно строку и ячейку. Но подобный способ ведет к усложнению ХТМЛ, но учитываю что таблица создается динамически это не такой и большой недостаток. function CreateSubTip(elem) { var row; var cell; var nextElem=elem; for(i=0;i<=1;i) { if(nextElem.parentNode.tagName=='TR') { cell=nextElem; row=nextElem.parentNode; break; } else { nextElem=nextElem.parentNode; } if(nextElem.parentNode.tagName=='HTML') { alert("Error table for Grid"); break; } } if(elem.nextSibling && elem.nextSibling.tagName=="DIV" && elem.nextSibling.name=="subDiv") { elem.parentNode.removeChild(elem.nextSibling); row.className=""; } else { row.className="ForRow"; subDiv=document.createElement("DIV"); subDiv.className="ForSubDiv"; subDiv.name="subDiv"; elem.parentNode.appendChild(subDiv); var div = document.createElement("DIV"); div.className="ForDiv"; div.style.left=-cell.offsetLeft+2+"px"; div.style.width=row.offsetWidth-6+"px"; //Вот тут мы и присваиваем нужные атрибуты создаваемому списку //for(i=1;i<row.cells.length;i++)div.innerHTML=div.innerHTML+" "+row.cells[i].innerHTML; div.innerHTML=row.rowIndex;//Тут по идее вызываеться ф-я которая ищет запись в массиве по индексу строки subDiv.appendChild(div); } }
-
А в чем смотришь? Если в чем-то лисообразном, то там релатив не сработает нужным образом для элементов таблицы и положение абсолют будет считаться от внешнего контейнера.
-
Подобную мысль я тоже рассматривал. К имени класса мне тоже не очень нравиться привязываться, т.к. я за динамичный ксс . Как лучшую альтернативу я так же рассматривал привязываться к атрибуту NAME, т.к. этот атрибут не обязательно должен быть уникальным. Весь вопрос сводиться в конечном счете к тому к чему привязываться. Тоже хотел написать подобную функцию которая ищет родителя по атрибутам, но отложил ее на потом ) .
-
Я и думаю наперед, т.к. много раз уже на этом обжигался. Так вот для того чтобы не переделывать потом я и стараюсь как можно меньше изменять исходный хтмл. Ведь для другого скрипта может понадобиться первоначальная индексация строк. Так же, например, с динамической сортировкой строк будет легче, как я полагаю. Не придется уже открытые всплывающие подсказки связывать со строками с которыми они логически ассоциируются, т.к. они сами находятся в той же самой строке. Как я понял основная проблема это где хранить данные или ссылку на данные? Если бы я создавал таблицу, то поместил бы их или в кнопку, как было предложено, или же вообще все данные поместил бы в таблицу и прятал столбцы, естественно если данных немного и это не сильно скажется, например, на трафике. В таком случае тягать их из этой же самой строки тоже не проблема. Собственно это уже в алгоритме и делается. Баг с тем что кнопка должна находиться в первой ячейки строки я сейчас исправлю. П.С, Может уже на "ты"? А то ты сам перескакиваешь с ты на вы от сообщения к сообщению.
-
Я просто не хотел как раз нарушать индексацию строк и ячеек, из-за этого и пытаюсь впихнуть все в одну строку. Тот вариант что ты предложил я отбросил еще в самом начале. Кстати. А почему должен быть обязательно связанный массив? Не легче всю информацию, или хотя бы ссылки на нее грузить в невидимые столбцы той же строки?
-
Надеюсь что такого способа нет и никогда не будет, иначе спамеры замучают. Пока спамеры мучают через всплывающие дивы
-
Примерно так тогда КСС: .ForRow { height:110px; } .ForRow td { vertical-align:top; } .ForDiv { border:Solid 1px Orange; background-color:#ddd; height:80px; width:150px; position:absolute; top:2px; } .ForSubDiv { height:0px; width:0px; position:relative; } Скрипт: function onClick(elem) // Вызывается по событию клика на переключателe { var row = elem.parentNode.parentNode; if(elem.nextSibling && elem.nextSibling.tagName=="DIV" && elem.nextSibling.name=="subDiv") { elem.parentNode.removeChild(elem.nextSibling); row.className=""; } else { row.className="ForRow"; subDiv=document.createElement("DIV"); subDiv.className="ForSubDiv"; subDiv.name="subDiv"; elem.parentNode.appendChild(subDiv); var div = document.createElement("DIV"); div.className="ForDiv"; //Вот тут мы и присваиваем нужные атрибуты создаваемому списку //for(i=1;i<row.cells.length;i++)div.innerHTML=div.innerHTML+" "+row.cells[i].innerHTML; div.innerHTML=row.rowIndex;//Тут по идее вызываеться ф-я которая ищет запись в массиве по индексу строки subDiv.appendChild(div); } } Единственное что пока недоработал так это то что переключатель должен находиться в первой колонке. Для исправления нужно просто скриптом высчитывать ширину колонок перед переключателе и выставлять координаты абсолютного позиционирования относительно этой ширины. Просто не было времени. В иннерхтмл дива пока передается индекс строки, вместо этого должна вызываться функция которая по индексу строки ищет соответствующую запись в массиве. Но написание этой функции в задание уже не входит, насколько я понял.
-
Айдишник записи содержится в одной из ячеек таблицы? Тогда просто надо читать содержимое нужной ячейки. Я правильно понял? Обработка айдишника и поиск по нему в задание входит? Сейчас допишу чтоб убирался. Не могли бы пока помочь с тем что в мозиле так криво отображается?
-
Попробуй в стили второго дива добавить width:69% и overflow:auto .
-
Просто выходные были . Примерно так. КСС: .ForRow { height:110px; position:relative; } .ForRow td { vertical-align:top; } .ForDiv { border:Solid 1px Orange; background-color:#ddd; height:80px; width:150px; position:absolute; top:30px; left:5px; } Джава: function onClick(elem) // Вызывается по событию клика на переключателe { var row = elem.parentNode.parentNode; row.className="ForRow"; var subCell=document.createElement("TD"); row.appendChild(subCell); var div = document.createElement("DIV"); div.className="ForDiv"; //Вот тут мы и присваиваем нужные атрибуты создаваемому списку for(i=1;i<row.cells.length;i++)div.innerHTML=div.innerHTML+" "+row.cells[i].innerHTML; subCell.appendChild(div); } Пример таблицы: <table> <tr><td><input type="button" value="CH" onclick="onClick(this)" /></td><td>Первая строка</td><td>dgdfgdfg</td></tr> <tr><td><input type="button" value="CH" onclick="onClick(this)" /></td><td>Вторая строка</td><td>dgdfgdfg</td></tr> <tr><td><input type="button" value="CH" onclick="onClick(this)" /></td><td>Еще одна строка</td><td>dgdfgdfg</td></tr> <tr><td><input type="button" value="CH" onclick="onClick(this)" /></td><td>Последняя строка</td><td>dgdfgdfg</td></tr> </table> Единственное что под не ИЕ ее карежит, пока не разобрался почему. Индексация строк в таблице не нарушается, айдишники нигде не используются. Какие именно данные передавать из задания я пока не понял, поэтому просто передаю содержимое ячеек без селектора. Но модернизировать под необходимые значения не сложно. Передавать индефикатор строки или указатель на нее не имеет смысла, т.к. сам контейнер находиться в этой строке. Так же нет функции закрытия всплывающей подсказки, но если потребуется допишу. Жду конструктивной критики.
-
Верхнюю часть растянуть на 100% и нижнюю- position:absolute; button:0;
-
Один из выходов это расположить в самом конце скрипт вызова нужной ф-ии. тогда он сработает только после того как загрузиться все содержимое страницы. Есть еще какой-то способ через прописывание эвента, но я его не помню.
-
Ну если он динамически создается, то можно прямо при создании загружать в него все необходимые данные из строки. Прочитать на переключатель какой строки нажали не проблема, даже можно вообще не использовать никаких ID-в.
-
Умоляю! Выпадающее меню и проблемы в IE6.
Ogalig replied to kalyaka-malyaka's question in JavaScript
Попробуй протрейсить как-нибудь в каком именно месте у тебя не срабатывает скрипт. Я обычно юзаю алерты и подставляю их в после интересующей меня строки. Это если нет нормального редактора с точками останова под рукой. -
А так у тебя получилась бесконечная рекурсия. Введи переменную. Увеличивай ее каждый раз при заходе в функцию. Вызывай интервал только при начении переменной, скажем, меньше 100.
-
Можно было бы вместо id передавать указатель типа [object] на строку, или индекс строки. А вот про display:block было бы интересно услышать более правильное решение. Этот контейнер, кстати, будет создаваться динамически при нажатии на switch, скажем, или он будет создан статически под каждой строкой?
-
Можно попробовать через http://htmlbook.ru/css/content.html Но лучше править ксс самих строк.