Показать сообщение отдельно
  #1 (permalink)  
Старый 25.12.2013, 13:08
Аспирант
Отправить личное сообщение для Иззет Посмотреть профиль Найти все сообщения от Иззет
 
Регистрация: 22.11.2013
Сообщений: 39

Проблема с заменой toggle
Здравствуйте, столкнулся с проблемой замены toggle(). Как я знаю, данный метод в последних версиях jquery работает иначе, нашёл такую альтернативу :
var flag = new Boolean(true);//Создаем логическую переменную (со значением true)
$('.table').hide(); 

$('h3').click(function() {

  if (flag) {//Если flag == true
    flag = false;//Меняем значение переменной flag
    func1.call(this);//Вызываем func1 с контекстом этой функции (т.е. в вызванной функции this = this этой функции)
  } else {//Если flag не равно true
    flag = true;
    func2.call(this);
  }
  return false;
});
 

function func1() {$('.table').slideDown(500);};
function func2() {$('.table').slideUp(500);};


<h3>Заголовок</h3>
<div class="table">Контент</div>
<h3>Заголовок</h3>
<div class="table">Контент</div>

Корень проблемы - переменная flag будет менять значение true/false вне зависимости по какому именно h3 мы кликаем, можно конечно для каждого заголовка прописать свою переменную, но получится довольно большой код, нет ли более изящного решения ?
Ответить с цитированием