Вход

Просмотр полной версии : Функция toogle


Hag1989
25.10.2009, 13:17
Помогите пожалуйста отредактировать функцию toogle (отвечающую за отображение скрытого элемента) так, чтобы при повторном клике на область, вызывающую эту функцию, элемент со свойством Hide не скрывался опять.

Заранее благодарен за помощь!

вот сам код:
<html>
<head>
<script type="text/javascript">
function toogle(id) {
var item;
if (item = document.getElementById(id)) {
item.style.display = item.style.display == 'none' ? '' : 'none';
}
return false;
}
</script>

<style type="text/css">
.link {background: #999999 }
.hoverlink {background: red;}
#sublink { padding: 50px; background: #999999;}
</style>
</head>

<body>
<FORM NAME="data" ACTION="" METHOD="POST">
<table border="1">
<tr>
<td class="link" onMouseOver="this.className='hoverlink';" onMouseOut="this.className='link';"><input type="radio" name="имя_переменной" value="начальное_значение">
признак1
</td>
</tr>
<td class="link" onMouseOver="this.className='hoverlink';" onMouseOut="this.className='link';"><input type="radio" name="имя_переменной" value="начальное_значение">
признак2
</td>
</tr>
<tr>
<td class="link" onMouseOver="this.className='hoverlink';" onMouseOut="this.className='link';" onClick="toogle('sublink');"><input type="radio" name="имя_переменной" value="начальное_значение">
группа признаков</td>
</tr><tr>
<td id="sublink" style="display:none;"><input type="radio" name="имя_переменной" value="начальное_значение">
Скрытая руппа</td>
</tr><tr>
<td width="200" height="50">Еще одна строка</td>
</tr></table>
</FORM>
</body>
</html>

ArtEthics
02.08.2011, 11:14
Можно так

function getElementComputedStyle(elem, prop){
if(typeof elem!="object")elem=document.getElementById(elem);if(document.de faultView&&document.defaultView.getComputedStyle){if(prop.mat ch(/[A-Z]/))prop=prop.replace(/([A-Z])/g,"-$1").toLowerCase();return document.defaultView.getComputedStyle(elem,"").getPropertyValue(prop)}if(elem.currentStyle){var i;while((i=prop.indexOf("-"))!=-1)prop=prop.substr(0,i)+prop.substr(i+1,1).toUpper Case()+prop.substr(i+2);return elem.currentStyle[prop]}return"";
}
function toogle(id) {
var item,
disp = getElementComputedStyle(id, 'display');
if (item = document.getElementById(id)) {
item.style.display = (disp == 'none') ? 'block' : 'none';
}
return false;
}

monolithed
02.08.2011, 18:47
ArtEthics,
что это неотформатированный копипаст? ;)

Hag1989,
используйте event.target