Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.04.2011, 15:33
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Скрыть/показать 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>
Ответить с цитированием
  #2 (permalink)  
Старый 21.04.2011, 15:56
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Триви
Функция открывает/закрывает div
Эмм... И на какой строчке это по-твоему происходит?
Ответить с цитированием
  #3 (permalink)  
Старый 21.04.2011, 15:58
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Сообщение от Sweet Посмотреть сообщение
Эмм... И на какой строчке это по-твоему происходит?
Да на 7-й должно ваще то (toggle)..
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2011, 16:00
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

А, ну да, не знал - не большой я знаток jQuery
Ответить с цитированием
  #5 (permalink)  
Старый 21.04.2011, 16:03
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Не знаю как у тебя там устроен 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>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #6 (permalink)  
Старый 21.04.2011, 16:19
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Используя toggle, я следовал следующему описанию:
Цитата:
toggle(fn, fn1)
Переключается между двумя функциями, которые по очереди вызываются каждым следующим кликом. Каждый раз, когда клик совершен на выбранном элементе, срабатывает первая функция. Если на том же элементе совершен еще один клик - срабатывает вторая функция.
Ответить с цитированием
  #7 (permalink)  
Старый 21.04.2011, 16:24
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Ну так указывая
$('.div_' + id).toggle

Вешается событие на сам ДИВ, а вам надо по нажатию на изображение менять ?
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #8 (permalink)  
Старый 21.04.2011, 16:39
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Сообщение от walik Посмотреть сообщение
Ну так указывая
$('.div_' + id).toggle

Вешается событие на сам ДИВ
, а вам надо по нажатию на изображение менять ?

Как так? А почему тогда такой код закрывает див, по нажатию на изображение? -

function showClose(id) {
      $('.div_' + id).toggle();
}
Ответить с цитированием
  #9 (permalink)  
Старый 21.04.2011, 16:45
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Тугглите лучше классы, сдвигая картинку.
Ответить с цитированием
  #10 (permalink)  
Старый 21.04.2011, 16:52
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Так:
$('.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>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай

Последний раз редактировалось walik, 21.04.2011 в 16:55.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с div И animate g00000dman jQuery 2 24.03.2011 23:34