Jump to content
  • 0

jquery событе раскрывания текста


mary
 Share

Question

Добрый день,

подскажите, пожалуйста, как к этому коду прикрутить "+" - при скрытом блоке и "-" - при ооткрытом блоке:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Раскрытие и скрытие div с помощью jquery</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript" src="jquery-1.4.1.min.js"></script>
<script>
function facechange (objName) {
if ( $(objName).css('display') == 'none' ) {
$(objName).animate({height: 'show'}, 400);
} else {
$(objName).animate({height: 'hide'}, 200);
}
}
</script>
</head>
<body>
<div id="divId" style="display: none;">
Текст в скрытом слое <br>
Текст в скрытом слое <br>
Текст в скрытом слое <br>
Текст в скрытом слое <br>
</div>
<a href="#" onclick="facechange('#divId'); return false">Открыть/Закрыть</a>
</body>
</html>

Спасибо!

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Вызывая функцию скрытия-показа меняй nodeValue у объекта-ссылки

Вот так правильно?


function facechange (objName) {
if ( $(objName).css('display') == 'none' ) {
$(objName).animate({height: 'show'}, 400);
$('span').text(' - ');
} else {
$(objName).animate({height: 'hide'}, 200);
$('span').text(' + ');
}
}

Я, к сожалению, не слишком хорошо разбираюсь в javascript.

И еще есть вопрос не будет ли этот код слишком загружать страницу? Дело в том, что я хочу использовать его для страницы FAQ (Часто задаваемые вопросы), то есть, таких дивов на странице будет около 25?

И вообще, чем этот код отличается или лучше этого:


function show_squad (id) {
if (document.getElementById("span_" + id).style.display == 'none') {
document.getElementById("span_" + id).style.display = "block";
}
else {
document.getElementById("span_" + id).style.display = "none";
}
}

Большое спасибо!

Edited by mary
Link to comment
Share on other sites

  • 0

Второй код лучше тем, что мне он понятен, а вот в jquery я вообще не секу ;)

А ещё второй код будет глючить при первом нажатии если блок изначально скрыт. Потому что style.type у него будет пустой, и он скроется ещё разок. И только со второго нажатия заработает. Поэтому туда нужно воткнуть defaultView.getComputedStyle (сам не пробовал, но прочитал в интернете)

Если я правильно понимаю, что делает этот jquery-сценарий, то всё правильно.

Link to comment
Share on other sites

  • 0

Аааааааа, не получается с этим кодом:

function facechange (objName) {
if ( $(objName).css('display') == 'none' ) {
$(objName).animate({height: 'show'}, 400);
$('span').text(' - ');
} else {
$(objName).animate({height: 'hide'}, 200);
$('span').text(' + ');
}
}

Он сразу все "+" делает "-"-ми ;)

И я понимаю почему, я же не привязала span к конкретному objName - уже перепробовала и так и эдак - не получается :)

Помогиииииите!

Link to comment
Share on other sites

  • 0

document.getElementById(objName).nextSibling.firstChild.nodeValue='+';

Это если у тебя элементы рядом. Короче, учи как работать с DOM, и как попасть от одного объекта к другому через соседей и детей/родителей

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy