jQuery toggle()问题

时间:2012-03-28 23:32:43

标签: javascript jquery toggle

我正在使用此讨论中的脚本:https://wordpress.stackexchange.com/a/14711/14649

效果很好,但是当我选择不同的收音机输入时,原始框不会关闭(坏),但新框确实出现(好)。对于我添加的任何其他框,都会发生这种情况。

jQuery不是我的事,我一直在研究没有运气!这是我的代码:

<script type='text/javascript'>
 jQuery(document).ready(function($) {
        $('#feature_box').hide();
        $('#standard_lead').hide();             

        // one box
        $('#value_feature_box').is(':checked') ? $("#feature_box").show() : $("#feature_box").hide();
        $('#value_feature_box').click(function() {
            $("#feature_box").toggle(this.checked);
        });

        // second box
        $('#value_standard_lead').is(':checked') ? $("#standard_lead").show() : $("#standard_lead").hide();
        $('#value_standard_lead').click(function() {
            $("#standard_lead").toggle(this.checked);
        });
    });
</script>

谢谢你看看!

2 个答案:

答案 0 :(得分:0)

你在点击时只切换一个框 - 你需要切换两个框,看到这个jsFiddle:

有了这个(和其他方框类似):

    $('#value_feature_box').click(function() {
        $("#feature_box").toggle(this.checked);
    });

你基本上是在说 - 点击(所以this.checked总是如此),切换元素。来自文档:

您正在使用具有showOrHide参数且始终传递true的切换版本,因此始终显示并且仅显示已单击的框。

答案 1 :(得分:0)

另一个盒子没有消失的原因是因为你没有告诉它!​​

$('#value_feature_box').click(function() {
    $("#feature_box").toggle(this.checked);
});

这表示当您点击#value_feature_box时切换#feature_box的可见性。如果#value_feature_box不是复选框,则将内部代码更改为$("#feature_box").toggle();。如果你想要一些东西也消失,那就告诉它:

$('#value_feature_box').click(function() {
    $("#feature_box").toggle();
    $("#standard_lead").toggle();
});

toggle()括号内部的值告诉它出现或消失(true或false)。