2014-10-19 3 views
-1

Я пытаюсь запустить функцию, когда состояние переключателя только «открыто». Прямо сейчас функция работает в любом случае. Я не совсем уверен, как сделать так, чтобы он запускался только при открытии переключателя. Я где-то нашел код переключения и использовал его, он отлично работает.JQuery Toggle If statement

$("#SB2p").click(function() { 
     $("#SB2").toggle('slow',function(){ 
      var $link = $("#SB2p"); 
      $(this).is(":visible") ? $link.text("<<<") : $link.text(">>>"); 
     }); 
     accumulative(); 
    }); 

Любая помощь будет замечательной.

ответ

0

У вас уже есть рабочий пример. Тройная оператор использует $ (это) .а («: видимый»), так что используйте, что:

$("#SB2p").click(function() { 
     $("#SB2").toggle('slow',function(){ 
      var $link = $("#SB2p"); 
      if ($(this).is(":visible")) { 
       $link.text("<<<"); 
       accumulative(); 
      } else { 
       $link.text(">>>"); 
      } 
     });  
    }); 
+0

Только проблема в том, что это в асинхронной функции обратного вызова, так что функция будет выполняется чуть позже, чем пример данный. – adeneo

+0

Функция обратного вызова вызывается, когда анимация *** завершена ***. – jme11

+0

Правильно, и это будет позже, чем когда щелкнут элемент, то есть когда функция вызывается в данном примере, но это не имеет особого значения, она явно работает для OP. – adeneo