2013-07-04 2 views
0

Я в настоящее время использую jQuery Mobile и просто хочу скрыть и показать определенные divs каждый раз, когда я нажимаю кнопку. Вот мой код:jQuery Mobile .toggle() не работает

$('#SignUpLink').click(function() 
      { 
        $('#signinputup').toggle('normal',function() { 
         $('#signinput').hide('fast'); 
        }, function() { 
         $('#signinput').show('fast'); 
        }); 
      }); 

Я simlply хочу нажать на кнопке SignUpLink и хочу signinput появляться и сделать signinput исчезают, а затем, когда я нажимаю на SignUpLink Я хочу обратный случиться. Но с данным кодом выше, я получаю следующее сообщение об ошибке:

Uncaught TypeError: Property 'function() { 
         $('#signinput').hide('fast'); 
        }' of object #<Object> is not a function 

Я не уверен, что значит ошибка и как исправить код, чтобы получить функциональность Я ищу

+0

jquery version? beware '.toggle()' изменен как от 1.8 – TecHunter

+0

Я использую одну из последних версий jQuery 1.9.x – user481610

+0

это то, что вы хотите? http://jsfiddle.net/Palestinian/zbjZu/1/ – Omar

ответ

1

Попробуйте это так, просто убедитесь, второй элемент спрятан заранее

$('#SignUpLink').click(function() { 
    $('#signinput, #signinputup').toggle(); 
}); 
1

Проверьте syntax функции toggle. Она имеет четыре различных способа вызова:

  1. два параметра:

    .toggle([duration ] [, complete ]) 
    

    Где duration это число или строку и complete функции.

  2. Одним из параметров:

    .toggle(options) 
    

    Где options представляет собой объект с конфигурацией.

  3. три параметра:

    .toggle(duration [, easing ] [, complete ]) 
    

    Где easing является строка.

  4. Один параметр:

    .toggle(showOrHide) 
    

    Где showOrHide это логическое значение.

В своем коде вы звоните с три параметров, что неправильно, потому что он не соответствует какой-либо из этого:

$('#signinputup').toggle('normal', /*ONE*/ 
        function() {$('#signinput').hide('fast');}, /*TWO*/ 
        function() {$('#signinput').show('fast');} /*THREE??*/ 
); 
+0

Я пробовал использовать ваш код, но, похоже, я все еще сталкиваюсь с той же проблемой. Я сделал jsfiddle: http://jsfiddle.net/zbjZu/ – user481610

+0

Он не предоставил никакого кода, он такой же, как ваш, но отформатирован по-разному ... –

+0

@ user1638809 Снова прочитайте сообщение, я говорю, что не так, измените свой код в соответствии с вашими потребностями –