2

私はここで初めてなので、これを正しくやっているといいのですが。

私は現在、水平に開くさまざまなタブがある簡単なjQuery機能に取り組んでいます。問題は、これを切り替えるのに問題があるということです。

私はvisibleと呼ばれるバリアベルを使用しています。要素の状態に応じて true または false になります。これは 1 つの要素に対しては正常に機能しますが、2 つの要素を開く場合は、実行する前にまずダブルクリックして値を false にする必要があります。

あなたの誰かがこれに対するより良い解決策を提供できますか?

   <script type="text/javascript"> 
    var visible=0;
    function getClickedId(clicked_id) {
        var selectedId = clicked_id;
        $(document).ready(function () {

            if (visible ==0) {
                  $('[name='+selectedId+']').animate({width: 300}, "slow");
                  $('#Wrapper'+selectedId).animate({width: 325}, "slow");
                   visible=1;
            } else {
                  $('[name='+selectedId+']').animate({width: 0}, "slow");
                  $('#Wrapper'+selectedId).animate({width: 25}, "slow");
                  visible=0;
            }
        });
    }
    </script>

(コードの埋め込みが正しくない場合は申し訳ありません)

4

2 に答える 2

0

試す:

<script type="text/javascript"> 
var visible=0;
function getClickedId(clicked_id) {
    var selectedId = clicked_id;
    if (visible == 0) {
          $('[name='+selectedId+']').animate({width: 300}, "slow");
          $('#Wrapper'+selectedId).animate({width: 325}, "slow");
          visible=1;
    } else {
          $('[name='+selectedId+']').animate({width: 0}, "slow");
          $('#Wrapper'+selectedId).animate({width: 25}, "slow");
          visible=0;
    }
 }
</script>
于 2012-06-23T18:38:20.397 に答える
0
$(document).ready(function () {
    var visible=true;
    function getClickedId(clicked_id) {   
        $('[name="'+clicked_id+'"]').animate({width: visible ? 300 : 0}, "slow");
        $('#Wrapper'+clicked_id).animate({width: visible ? 325 : 25}, "slow");
        visible=!visible;
    }
});

フィドル </p>

于 2012-06-23T18:50:59.243 に答える