2013-01-23 10 views
19

こんにちは私は、クリックごとに縮小して成長するものを作成しようとしていますが、私は自分のウェブサイトにjQuery 1.9を使用しています。 .toggle(function,function)関数がjQuery 1.9から削除されたので、代わりに何を使用すべきかはわかりません。jQuery 1.9が.toggle(関数、関数)を削除した後に使用する代替手段は何ですか?

助けがあれば助かります。

おかげ

jsfiddle(、jqueryの1.8バージョンを古いコードを使用しています):http://jsfiddle.net/TNAC6/

新しいjsfiddle(jQueryの1.9):ここではhttp://jsfiddle.net/TNAC6/1/

は私がトグルを作るしようとしている私のコードです。基本的に私がトグルしているのは円のdivです。

(function($){ 
    $.fn.createToggle = function(size) { 
     var ele = $(this); 
     var oldSize = ele.width(); 
     console.log("creating new toggle on element: " + ele + " old: " + oldSize + " new: " + size); 
     console.log("its content is" + ele.children(".content")); 
     var growfn = function() { 
      $(this).stop().animate({ 
       'width': size+'px', 
       'height': size+'px', 
       'margin-left': '-'+(size/2)+'px', 
       'margin-top': '-'+(size/2)+'px' 
      }, 500); 
      $(this).children(".content").toggle(); 
     }; 
     var shrinkfn = function() { 
      $(this).stop().animate({ 
       'width': oldSize+'px', 
       'height': oldSize+'px', 
       'margin-left': '-'+(oldSize/2)+'px', 
       'margin-top': '-'+(oldSize/2)+'px' 
      }, 500); 
      $(this).children(".content").toggle(); 
     }; 
     ele.click(function() { 
//insert code to toggle stuff 
     }); 
    }; 
})(jQuery); 

$(".home").createToggle(500); 

とCSS:

.circleBase { 
    -webkit-border-radius: 999px; 
    -moz-border-radius: 999px; 
    border-radius: 999px; 
    behavior: url(PIE.htc); 
} 

.home { 
    width: 200px; 
    height: 200px; 
    background: #FF5032; 
    position: absolute; 
    top: 300px; 
    left: 300px; 
    margin-left: -100px; 
    margin-top: -100px; 
} 

.title { 
    position: relative; 
    padding-top: 10%; 
    text-align: center; 
    font-weight: bold; 
    font-size: 24px; 
} 

.content { 
    text-align: center; 
    display: none; 
} 

とhtml:二つの状態で

<div class="circleBase home"> 
    <p class="title">Glen Takahashi<p> 
    <p class="content">THIS IS CONTENT<BR> THIS IS CONTENT<BR> THIS IS CONTENT<BR> THIS IS CONTENT<BR> THIS IS CONTENT</p> 
</div> 
+5

いくつかの代替方法は、ここで見つけることができます。https://forum.jquery .com/topic/beginner-function-toggle-deprecated-what-to-use-しかし、あなたのコードを投稿すると、あなたの直接の状況を助ける可能性があります。最初に.toggleメソッドを必要とすることはありませんでした。 –

+0

jQuery UIライブラリに.toggle()メソッドもあります。http://api.jqueryui.com/toggle/ – samazi

+0

コードを追加しました。もしそれが簡単なら、 –

答えて

6

、あなただけの(私がclickStateを使用)ブール値として現在の切り替え状態を維持することができます。複数の状態を維持したい場合は、状態数に1を加え続け、合計数の係数をチェックして、状態に基づいてどの関数を起動するかを決定することができます。私はeleので、あなたのコードビットを更新

が実際に使用したいjQueryオブジェクトである:

http://jsfiddle.net/TNAC6/2/

+0

これは私が必要としていたものです。ありがとうございました! –

4
$(document).ready(function() { 
    var flag=0; 
    $('selector').on('click', function(){ 
     var menu = $("element_to_toggle"); 
     if(flag==0){ 
      menu.text("click one"); 
      flag=1; 
      return; 
     } 
     else if(flag==1){ 
      menu.text("click two"); 
      flag=0; 
      return; 
     } 
    }); 
}); 
+0

フラグのエラーを修正...スイッチは私が推測するより良いだろう.. –

関連する問題