Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как совместить работу onmouseover, onmouseout и onclick (https://javascript.ru/forum/misc/4648-kak-sovmestit-rabotu-onmouseover-onmouseout-i-onclick.html)

Sed0Y 10.08.2009 19:17

Как совместить работу onmouseover, onmouseout и onclick
 
Помогите :)

Вот уже дня 3 ищу в инете и не могу найти решение моей проблемы...

к примеру:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><html><head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<style type="text/css">	td{background-color: blue;} </style>
<script type="text/javascript"><!--
	function over_(oo){
		var o = document.getElementById(oo);
			o.style.background = 'green';	
	}	
	function out_(oo){
		var o = document.getElementById(oo);
			o.style.background = 'blue';	
	}	
//-->
</script>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="50%" align="center">
	<tr >
		<td width="25" align="center" id="text1" onmouseover="over_('text1')" onmouseout="out_('text1')">Текст №1</td>
		<td width="25"  align="center" id="text2" onmouseover="over_('text2')" onmouseout="out_('text2')">Текст №2</td>	
		<td width="25"  align="center" id="text3" onmouseover="over_('text3')" onmouseout="out_('text3')">Текст №3</td>
		<td width="25"  align="center" id="text4" onmouseover="over_('text4')" onmouseout="out_('text4')">Текст №4</td>
		<td width="25"  align="center" id="text5" onmouseover="over_('text5')" onmouseout="out_('text5')">Текст №5</td>
	</tr></table>
</body>
</html>


ВОПРОС: Как сделать так, что бы остался принцип работы onmouseover и onmouseout при добавлении еще на OnClick закрашилась ячейка к примеру в желтый цвет?

Gvozd 11.08.2009 10:21

чтоб на совсем закрашивалась?
тогда просто удаляете обработчики событий mouseover и mouseout, и выставляете цвет ячейке
если надо чтобы закрашивалось на mouseout желтым, а на mouseover как и ранее зеленым, то перенезначьте соответсвующий обработчик

zzz 11.08.2009 10:46

Нет он не это имел ввиду чтобы когда нажимаешь цвет ячейки был жёлтый а если не нажимаешь то зелёный или синий(out или over) как сделать хз не пробовал, но догадываюсь в чём проблема при нажати становится жёлтым но онМаусОвер снова делает зелёным

Sed0Y 11.08.2009 14:04

2zzz - Да, именно так, в этом и есть моя проблема, не могу ее решить

zzz 11.08.2009 14:16

Может написать чтобы ОнМаусОвер(Аут) работали только если фоновый цвет не жёлтый?

Sed0Y 11.08.2009 14:21

ух ты - а идея :) ща буду пробовать

Sed0Y 11.08.2009 14:48

вот мое решение - но оно работает только в ИЕ, в ФФ и ФЕ не работает, почему же?


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><html><head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<style type="text/css"> td{ background-color: blue; } </style>
<script type="text/javascript"><!--
    function over_(oo){
        var o = document.getElementById(oo);
		if (o.style.background != 'red')
            o.style.background = 'green';    
    }    
    function out_(oo){
        var o = document.getElementById(oo);
		if (o.style.background != 'red')
	    	o.style.background = 'blue';    
    }    
    function click_(oo){
	
		var arrCells = document.getElementsByTagName('td');
		for (idx=0; idx < arrCells.length; idx++) 
		{
		  strValue = arrCells[idx].innerHTML;
		  arrCells[idx].style.background = 'blue';
		}	
        var o = document.getElementById(oo);
            o.style.background = 'red';   
    } 		
//-->
</script>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="50%" align="center">
    <tr >
        <td width="25" align="center" id="text1" onmouseover="over_('text1')" onmouseout="out_('text1')" onclick="click_('text1')">Текст №1</td>
        <td width="25"  align="center" id="text2" onmouseover="over_('text2')" onmouseout="out_('text2')" onclick="click_('text2')">Текст №2</td>    
        <td width="25"  align="center" id="text3" onmouseover="over_('text3')" onmouseout="out_('text3')" onclick="click_('text3')">Текст №3</td>
        <td width="25"  align="center" id="text4" onmouseover="over_('text4')" onmouseout="out_('text4')" onclick="click_('text4')">Текст №4</td>
        <td width="25"  align="center" id="text5" onmouseover="over_('text5')" onmouseout="out_('text5')" onclick="click_('text5')">Текст №5</td>
    </tr></table>
</body>
</html>

zzz 11.08.2009 15:10

Во-первых ФЕ эт что за браузер)))

Sed0Y 11.08.2009 15:40

Простите, это какая-то дурная опечатка, не знаю о чем я думал )
IE работает а в FF, Opera - нет

zzz 11.08.2009 15:42

хмм думаю ты задействовал какой-то элемент(функцию) которая работает только в ИЕ


Часовой пояс GMT +3, время: 12:40.