Скрыть/показать div, меняя иконку плюс/минус
Ребята, упростил код, не понимаю почему не пашет?
Всё же до безобразия просто! :-/ Полный пример: http://www.usaparts.ru/jquerytest/index.html
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
// Функция открывает/закрывает div и меняет соответствующую диву иконку
function showClose(id) {
$('.div_' + id).toggle(
function () {
$("#img_" + id).attr('src', 'minus.gif');
},
function () {
$("#img_" + id).attr('src', 'plus.gif');
}
);
}
</script>
<img id="img_07" src="minus.gif" onclick='showClose("07")'>
<div class="div_07">Текст текст текст текст текст</div>
<br>
<img id="img_09" src="minus.gif" onclick='showClose("09")'>
<div class="div_09">Текст2 текст2 текст2 текст2 текст2</div>
|
Цитата:
|
Цитата:
|
А, ну да, не знал - не большой я знаток jQuery:)
|
Не знаю как у тебя там устроен toggle (читал но не понял :) ), но вот так работает:
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
function showClose(id) {
$('.div_' + id).toggle(
function() {
if ($(this).is(':visible'))
$('#a_'+id).html('Спрятать');
else
$('#a_'+id).html('Показать');
}
);
}
</script>
</head>
<body>
<a href="#" id="a_07" onclick="showClose('07'); return false;">Спрятать</a>
<div class="div_07">Текст текст текст текст текст</div>
<br>
<a href="#" id="a_09" onclick="showClose('09'); return false;">Спрятать</a>
<div class="div_09">Текст2 текст2 текст2 текст2 текст2</div>
</body>
</html>
|
Используя toggle, я следовал следующему описанию:
Цитата:
|
Ну так указывая
$('.div_' + id).toggle
Вешается событие на сам ДИВ, а вам надо по нажатию на изображение менять ? |
Цитата:
Как так? А почему тогда такой код закрывает див, по нажатию на изображение? -
function showClose(id) {
$('.div_' + id).toggle();
}
|
Тугглите лучше классы, сдвигая картинку.
|
Так:
$('.div_' + id).toggle();
Ты просто меняешь видимость ДИВа (Показать.Спрятать) Подробнее А той конструкцией ты задаешь функции которые будут выполняться при кликах: Подробнее .toggle( handler(eventObject), handler(eventObject), [ handler(eventObject) ] ); handler(eventObject) - Функция выполняется когда четное число клика handler(eventObject) - Функция выполняется когда нечетное число клика handler(eventObject) - Дополнительный обработчик Пример из документации:
<html>
<head>
<style>
ul { margin:10px; list-style:inside circle; font-weight:bold; }
li { cursor:pointer; }
</style>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
</head>
<body>
<ul>
<li>Go to the store</li>
<li>Pick up dinner</li>
<li>Debug crash</li>
<li>Take a jog</li>
</ul>
<script>
$("li").toggle(
function () {
$(this).css({"list-style-type":"disc", "color":"blue"});
},
function () {
$(this).css({"list-style-type":"disc", "color":"red"});
},
function () {
$(this).css({"list-style-type":"", "color":""});
}
);
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 14:06. |