Нужна помощь noob Java
Нужна помощь в написание javascript для изменения цвета ячейки при наведении на нее курсора.
сейчас использую для нужных ячеек CSS код на ячейке. <div onmouseover="this.parentNode.style.background='#CC FF66'" onmouseout="this.parentNode.style.background='#CCF FCC'" id="990007905966|$rn$" name="$id_obj$" onClick="ElemPress(this,1);"> Нужно написать такой код чтобы можно было не использовать в ячейке код (onmouseover="this.parentNode.style.background='#C CFF66'" onmouseout="this.parentNode.style.background='#CCF FCC'" ) и не используя конструкцию style т.к. все равно придеться в каждую ячеку писать style=function Просто в одном месте написать обращение к форме (this). |
Ячейка - это <td> , а не <div>. Ты что-то перепутал.
|
да есть такое. в td заложен div.
|
но проблема от этого не решилась.
|
Для чего писать скрипты там, где можно обойтись без этого?
<!DOCTYPE html> <html><head> <style type="text/css" media="screen"> .div { background: #CCFFCC; } .div:hover { background: #CCFF66; } </style> </head><body> <table> <tr> <td class="div"><div>Дива</div> не дива</td> <td class="div">не дива ваще</td> </tr> </table> </body></html> |
В самом начале я написал что нет необходимости писать style. Нужно имеено обращение к document.getElementById('this').
Скрипт я так понял должен быть не большой. |
Цитата:
|
Короче мне срочно нужно на курсы java. В общем я понял что в div так или иначе придеться писать onmouseover и onmouseout. А в head писать скрипт с функцией .
onmouse="myFunc(this,'move');" onmouse2="myFunc(this,'out');" myFunc (elem, action) { var tdElem = elem.parentNode; if(action=='move') { if(tdElem.style.bgColor=='#CCFFCC') { tdElem.style.backgroundColor = red; } } else { .... } } |
Цитата:
Чем тебе вариант от BETEPAH не устроил? |
Просто там где я работаю постройка шаблонов строиться на наших генераторах которая сама рисует таблицу. И в td я никак не смогу запихнуть class так как td формируется генератором
|
Ок, а как ты тогда собрался привязывать обработчики onmouseover/onmouseout без каких либо идентификаторов/классов?
Селектор не обязательно должен быть по классу. Можно так: td:hover{..} или table.mytable td:hover{} |
Надо разобрать тот пример котоый я скинул
onmouse="myFunc(this,'move');" onmouse2="myFunc(this,'out');" myFunc (elem, action) { var tdElem = elem.parentNode; if(action=='move') { if(tdElem.style.bgColor=='#CCFFCC') { tdElem.style.backgroundColor = red; } } else { .... } } А в диве писать Div onmouse="myfunc(this,move);" |
Цитата:
|
Начальник рекомендовал так сделать. Это аргумент
|
<script type="text/javascript">
onmouse="myFunc(this,'move');" onmouse2="myFunc(this,'out');" myFunc (elem, action) { var tdElem = elem.parentNode; if(action=='move') { if(tdElem.style.bgColor=='#CCFFCC') { tdElem.style.backgroundColor = red; } } else { tdElem.style.backgroundColor = blue; } } </script> <div onmouse="myfunc(this,move);"> Правда не работает. Где то ошибка только в силу моего не зания java не могу понять где. |
Цитата:
Если такой элемент есть, просто соберите в массив все td внутри него и проставьте им onmouseover и onmouseout |
<script type="text/javascript">
function myFunc(elem, action) { var tdElem = elem.parentNode; if(action=='move') {alert(tdElem.style.backgroundColor); if(tdElem.style.backgroundColor=='#ccffcc') { tdElem.style.backgroundColor = '#ccff66'; } } else { tdElem.style.backgroundColor = '#ccffcc'; } } </script> <div style="cursor:pointer;" onmouseover="myFunc(this,'move');" onmouseout="myFunc(this,'out');" id = "990007905720|$rn$" name = "$id_obj$" onClick="ElemPress(this,2);">$vid$</div> В общем в таком виде все работает. Единственное что нужно надо дописать после background какой то метод который при распознавании цвета В разных боаузерах работал. Т. К сейчас в ie он его распознает на алерте так #ccffcc , а где то может #CCFFCC . Метод типа upper. Не подскажите именно какой метод? |
Вы заменили текст скрипта в инлайне на вызов функции там же и считаете, что справились с задачей начальника? ;)
Цитата:
|
Спс
|
Часовой пояс GMT +3, время: 15:00. |