更改单选按钮时打开关闭div

时间:2014-10-08 08:29:05

标签: jquery radio-button

我正在做http://jsfiddle.net/7VBJn/2/方法来执行此操作。

它工作正常,但我希望第一个div始终打开。我在这方面遇到了问题。

请帮帮我。

代码提取:

var current = '';
$('[name="week_day_time"]').change(function() {
    if(current.length) 
        $('#' + current).slideUp();
    current = $(this).val();
    $('#' + $(this).val()).slideDown();
});

3 个答案:

答案 0 :(得分:2)

您可以将周数设置为当前的第一次:

将周输入设置为已选中:

<input type="radio" name="week_day_time" value="week" checked />Week<br />

将当前初始化为week

var current = 'week';

不要隐藏week

#day, #time {
    display: none;
}

查看代码工作代码: http://jsfiddle.net/7VBJn/200/

答案 1 :(得分:1)

如果您的意思是默认打开div #week,只需将其从您应用{CSS}选择器display: none中移除,并将current初始设置为"week"。< / p>

/* Instead of #week, #day, #time */
#day, #time {
    display: none;
}

http://jsfiddle.net/7VBJn/201/

我还将星期的单选按钮设置为checked以反映表单中的更改。

答案 2 :(得分:0)

您可以使用changetrigger通过代码触发第一个元素change事件(以便指定的项目开始打开,而不会设置可见的状态和样式):

JSFiddle:http://jsfiddle.net/TrueBlueAussie/7VBJn/199/

您还可以使用not简化选择代码(您不需要当前的全局变量)。这只需要info divs上的公共类:

$('[name="week_day_time"]').change(function () {
    var $current = $('#' + $(this).val());
    $('.info').not($current).slideUp();
    $current.slideDown();
}).filter('[value=week]').trigger('change');

$('[name="week_day_time"]').change(function () {
    var $current = $('#' + $(this).val());
    $('.info').not($current).slideUp();
    $current.slideDown();
}).filter('[value=week]').change();