2

我是新来的,所以我希望我做对了。

我目前正在开发一个简单的 jQuery 功能,其中我有不同的选项卡可以水平打开。问题是我在切换它时遇到了问题。

我使用一个称为可见的变量;这取决于元素的状态是真还是假。这适用于一个元素,但如果我想打开两个元素,我必须双击以首先将值设为 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 回答