我正在做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();
});
答案 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)
您可以使用change
或trigger
通过代码触发第一个元素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();