|
|
|
| Написал функцию, которая должна назначить объектам div с id=1..10 css стили
Для этого снимаю от уже отображенных объектов на странице их относительное положение слева и справа(ниже):
control.setAttribute("onmouseover", "rzY=document.getElementById('"+icon+"').offsetTop; rzX=document.getElementById('"+icon+"').offsetLeft; rzX=rzX-27; rzY=rzY-73;
document.getElementById('overl"+overl+"').style.top=rzY;
document.getElementById('overl"+overl+"').style.left=rzX;
document.getElementById('overl"+overl+"').className = 'showNotOficcial';");
|
На странице формируются объекты div к которым посредством js надо приписать стили
$last.="<div class='overwindow' style=\"position:absolute;\" id='overl".$row['id']."'>".$row['title']." ".$row['adress']."</div>";
|
Стили такие:
.overwindow {visibility: hidden; width:250px; height:100px; background-color:#7F7F7F;}
.showNotOficcial {visibility: visible; width:250px; height:100px; background-color:#7F7F7F; position:absolute}
|
---------------------------------------------------------------------------------------
Код работает, отображает div объекты, только не там где нужно т-е не срабатывает
....style.top=rzY.... и ...style.left=rzX....
|
В чем может быть подвох?
При этом делал трассировку алертом значения rzY rzX - выводит | |
|
|
|
|
|
|
|
для: oli
(03.10.2010 в 00:28)
| |
...style.top=rzY + 'px';
...style.left=rzX + 'px';
|
Вы про это один раз уже спрашивали.
И один раз я Вам уже отвечал - http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=75753&page=1
Понимаю... с первого раза до Вас не дошло. Бывает...
Но, интересно, сколько раз ещё этот вопрос задавать будете?
Сиречь - с какого раза понимание к Вам придёт? :-)) | |
|
|
|
|
|
|
|
для: АЯ
(03.10.2010 в 00:38)
| | Прошу прощения, как говорится пока шишку не набью! Набил уже...Гарантирую )
Тогда еще один вопрос:
На странице есть объекты с id div1 div2 div45 div67 и тд , которых может быть сколько угодно...Необходимо по наведению на ссылку эти объекты скрыть. Как такое сделать? | |
|
|
|
|
|
|
|
для: OLi
(03.10.2010 в 01:12)
| | По наведению мыши на ссылку - onmouseover - надо запустить цикл, который переберёт ВСЮ коллекцию этих объектов - document.getElementsByTagName ('DIV') - проверит id каждого объекта на соответствие шаблону - div+цифра/ы - и установит свойство стиля visibility такового объекта равным hidden. В общем, одна строка кода из трёх операторов: цикл, условный, присваивание.
Соответственно, при отводе мыши - onmouseout - повторяются эти три оператора, только устанавливается иное значение - visibility. | |
|
|
|
|
|
|
|
для: АЯ
(03.10.2010 в 02:12)
| | Да, но проблема в том, что таких элементов может быть очень много и с индексами div 388
div855 очень разными(в разнобой), т-е если делать цикл, то не знаем конечное число, до которого прокручивать
В самом простейшем случае так:
function clearlink(){
for (var i = 1; i < 300; i++)
{
if (document.getElementsByTagName('div"+i+"')!==null)
{
}else { document.getElementById('div"+i+"').style.visibility='hidden';}
}
}
|
Но почему то не срабатывает? | |
|
|
|
|
|
|
|
для: OLi
(03.10.2010 в 12:49)
| | Ужасно плохо у Вас с понималкой :-(
"Прокручивать" в цикле надо коллекцию document.getElementsByTagName ('DIV') - это абсолютно ВСЕ теги <DIV> в документе, с любыми id и без оных. Браузер САМ, без Вашего участия, найдёт все эти теги и включит их в эту коллекцию, сколько бы их не было.
В общем, как и было обещано, всего 3 (ТРИ) оператора:
for (var w = document.getElementsByTagName ('DIV'), j = 0, l = w.length; j < l; j++) with (w [j])
if (id.length > 3 && id.indexOf ('div') == 0 && id.substr (3) == id.substr (3) * 1)
style.visibility = 'hidden';
|
| |
|
|
|
|
|
|
|
для: АЯ
(03.10.2010 в 15:52)
| | Мой код имеет право на жизнь, потому как выполняет свою задачу, а вот ваш пока не работает | |
|
|
|
|
|
|
|
для: OLi
(04.10.2010 в 00:32)
| |
function clearlink(){
for (var i = 1; i < 300; i++)
{
if (document.getElementById('div'+i))
{ document.getElementById('div'+i).style.visibility='hidden';
}else { }
}
|
| |
|
|
|
|
|
|
|
для: OLi
(04.10.2010 в 00:32)
| | Работает, работает... у некоторых просто руки "не имеют права на жизнь" :-)
<script>
function mF (x)
{
for (var w = document.getElementsByTagName ('DIV'), j = 0, l = w.length; j < l; j++) with (w [j])
if (id.length > 3 && id.indexOf ('div') == 0 && id.substr (3) == id.substr (3) * 1)
style.visibility = (x)? 'visible' : 'hidden';
}
</script>
<span onmouseover="mF (0)" onmouseout="mF (1)">Наведи</span>
<hr>
<div id="div234">Скроется - 1</div>
<div>Останется - 2</div>
<div id="div567">Скроется - 3</div>
<div id="div1">Скроется - 4</div>
<div id="abc345">Останется - 5</div>
<div id="div98765">Скроется - 6</div>
|
| |
|
|
|
|
|
|
|
для: АЯ
(04.10.2010 в 01:55)
| | Вы немного поспешили с выводом у меня эти объекты div формируются динамически, а не статически при загрузки страницы! Может в этом дело?
<a id="div33" href="#" onmouseover="edit()" onclick="clear()"><img src="/dle/templates/kartac/icon/15.gif"></a>
|
| |
|
|
|