2013-03-25 4 views
1

Попытка выполнить функцию, которая делает «A» при переключении в открытом положении и «B» при переключении.Функция jquery toggle open/close

Код:

function awesome_toggle() 
{ 
    $(".button").click(function() 
    { 
     $("content").toggle(
      function() 
      { 
       /* Do "A" */ 
      }, 
      function() 
      { 
       /* Do "B" */ 
      } 
     ); 
    }); 
} 

Этот код, кажется, не работает, и я не могу понять, почему. Когда я использую только одну функцию, поэтому я останавливаю код после/* Do "A" */it, но когда я добавляю функцию/* Do "B" * /, она перестает работать. Что не так?

версия JQuery: ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js

+0

Это ваш полный JS? – Mooseman

+0

@Mooseman Если вы подразумеваете, что это должно быть повторно помечено как вопрос JavaScript (добавление тега JS), я думаю, вы должны это сделать. Кроме того, OP, я не уверен, что понимаю вопрос, в частности, что вы хотели бы сделать. –

+0

Эта двухфункциональная версия переключения была удалена в jQuery 1.9.1. Посмотрите документацию: http://api.jquery.com/toggle/. Я считаю, что теперь он интерпретирует первую функцию как нечто другое (например, продолжительность) и выдает ошибку. –

ответ

5

В комментарии было сказано, эта версия toggle устарела.

Там вполне может быть лучший способ добиться того, чего вы хотите, но вы можете проверить, отображается ли после переключения с селектором :visible элемент, и делать вещи условно на основании этого.

function awesome_toggle() 
{ 
    $(".button").click(function() { 
     $("content").toggle(normalSpeed, function() { 
      if ($("content").is(':visible')) { 
       /* Do "A" */ 
      } else { 
       /* Do "B" */ 
      } 
     }); 
    }); 
} 
+0

Работы находят, большое спасибо! – Notsogood13

Смежные вопросы