0

我目前正在使用 jQuery Mobile,只是希望每次单击按钮时都隐藏和显示某些 div。这是我的代码:

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

我只是想单击SignUpLink按钮并希望它signinput出现并signinput消失,然后当我单击时,SignUpLink我希望相反的情况发生。但是使用上面给定的代码,我收到以下错误:

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

我不确定错误的含义以及如何修复代码以获得我正在寻找的功能

4

2 回答 2

1

检查函数的语法toggle它有四种不同的调用方式:

  1. 两个参数:

     .toggle( [duration ] [, complete ] )
    

    whereduration是一个数字或字符串和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??*/
 );
于 2013-07-04T15:39:53.880 回答
1

像这样尝试,只需确保预先隐藏第二个元素

$('#SignUpLink').click(function() {
    $('#signinput, #signinputup').toggle();
});
于 2013-07-04T16:10:59.253 回答