2013-07-04 60 views
0

我目前使用jQuery Mobile,並且只是希望在每次點擊按鈕時隱藏和顯示某些div。這裏是我的代碼: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?注意'.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

檢查syntaxtoggle函數。它調用的四種不同的方式:

  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再次閱讀帖子,我告訴你什麼是錯誤的,根據你的需要更改你的代碼 –