切换功能仅适用于单击打开的框而不是所有框?

时间:2013-09-05 23:37:56

标签: javascript jquery function toggleclass

代码:

<script type="text/javascript">
    $(document).ready(function () {

        $('.box').on('click', function (e) {
            e.preventDefault();
            var $btn = $(this);
            $btn.toggleClass('opened');

            var heights = $btn.hasClass('opened') ? 300 : 100;
            $(this).stop().animate({ height: heights }, 800);
            //$(".sync_store_info_input_holder").toggle();
        });
    });
</script>

使用上面的代码,我能够完成我需要的东西但是我对以下行有一点点问题:

$( “sync_store_info_input_holder。”)切换();

我只需要在.box打开时显示,而不是在它关闭时显示。我也需要它,所以只显示用户打开的框。我有18个使用.box类的盒子,只有id是唯一的,所以当切换功能工作时,用户打开的唯一框就是这样。

1 个答案:

答案 0 :(得分:1)

您似乎可以使用toggle() <script type="text/javascript"> $(document).ready(function () { $('.box').on('click', function(e) { e.preventDefault(); var $btn = $(this); $btn.toggleClass('opened'); // Make whether the box is open a variable for reuse var isOpen = $btn.hasClass('opened'); var heights = isOpen ? 300 : 100; // Reuse $btn instead of $(this) $btn.stop().animate({ height: heights }, 800); // Important change $(".sync_store_info_input_holder").toggle(isOpen); }); }); </script> 版本。如果没有,请编写showOrHide代码来解释问题。

.sync_store_info_input_holder

修改

  

我也需要它,因此仅显示用户打开的框。我有18个使用.box类的盒子,只有id是唯一的,所以当切换功能工作时,用户打开的唯一框就是这样。

你的意思是每个盒子里面都有一个$(".sync_store_info_input_holder", this).toggle(isOpen); 元素吗?如果是这样,您可以将行更改为

.box

仅选择.box jsFiddle中的元素。如果它在{{1}}之外,则您必须显示HTML以供我们举例说明。