Lecseus,
не понял ничего что вы написали, но ответ да можно - наверняка вам нужна открывашка, что-бы вы не придумали. функция будет одна -- без всяких show2 (понять бы только вас) |
ну, допустим у меня есть кнопка, которая открывает какой-то блок. и я хочу, чтобы она же этот блок закрывала (она - кнопка) по второму щелчку. это я уже реализовал. но, допустим, у меня много таких кнопок, можно ли чтобы одна единственная функция, которая закрывает конкретный блок, закрывала бы и другие блоки связанные с конкретными кнопками, в зависимости от того, с какой кнопкой я в данный момент работаю?
то есть на много кнопок повесить одну и ту же функцию. |
Lecseus,
это конечно очень слабенький пример я навожу
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div><button data-cl="one" onclick="HideOrShow(event, this)">Press 1</button>
<span class="one">Hello 1</span></div>
<div><button data-cl="two" onclick="HideOrShow(event, this)">Press 2</button>
<span class="two">Hello 2</span></div>
<script>
function HideOrShow(event, el){
if(el.getAttribute('data-cl') == el.nextElementSibling.className){
el.nextElementSibling.style.display = ( el.nextElementSibling.style.display == 'block'?'none':'block')
}
}
</script>
</body>
</html>
|
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
function check1(otvet1){
var show = document.getElementById("otvet1");
show.style.display = (show.style.display == 'none')?doit():hideT();
function doit(){
show.style.display = 'block',
show.innerHTML="правильный ответ:3",
show.style.color="green";
}
function hideT(){
show.style.display='none';
}
}
function check2(otvet2){
var show = document.getElementById("otvet2");
show.style.display = (show.style.display == 'none')?doit():hideT();
function doit(){
show.style.display = 'block',
show.innerHTML="правильный ответ:двацать",
show.style.color="green";
}
function hideT(){
show.style.display='none';
}
}
</script>
</head>
<body>
<button onClick="check1('otvet1');">Правильный ответ</button>
<div id="otvet1"></div>
<br>
<button onClick="check2('otvet2');">Правильный ответ</button>
<div id="otvet2"></div>
<br>
</body>
</html>
о, заработало.. коряво немного. только не могу разобраться, что нужно изменить, чтобы по первому щелчку выскакивал текст, а не по двойному щелчку? |
Lecseus,
вот немного подправил
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<button onClick="check('otvet01');">Правильный ответ</button>
<div id="otvet01">Answer 1</div>
<br>
<button onClick="check('otvet02');">Правильный ответ</button>
<div id="otvet02">Answer 2</div>
<br>
<script>
function check(answer) {
var target = event.target;
var elem = document.getElementById(answer);
if (!elem) return;
return elem.style.display = ( elem.style.display == 'none'?'block':'none')
}
</script>
</body>
</html>
|
спасибо, отлично работает
|
| Часовой пояс GMT +3, время: 13:28. |