此代码具有我想要的行为,但我希望在页面最初加载时也会发生此行为: (jsfiddle:https://jsfiddle.net/1px1t57s/)
$(document).ready(function(){
$('#id_repeat_type').on('change', function() {
if (this.value == 'NR')
{
$("#repeat-options").hide();
}
else
{
$("#repeat-options").show();
}
});
});
我的第一个想法是使用"更改负载"或者"准备就绪"而不只是改变",但这并没有改变行为(可能是因为该函数已经包含在$(document).ready中?)
我的下一个想法是将该功能拉出并单独运行以及更改,但是当我删除该功能时,它破坏了现有功能:https://jsfiddle.net/1px1t57s/1/
我错过了什么?
答案 0 :(得分:0)
您需要触发select on document.ready的更改事件,如下所示
$(document).ready(function(){
$('#id_repeat_type').trigger('change');
$('#id_repeat_type').on('change', function() {
if (this.value == 'NR')
{
$("#repeat-options").hide();
}
else
{
$("#repeat-options").show();
}
});
});
答案 1 :(得分:0)
这是基于你的小提琴修改的javascript:
$(document).ready(function(){
toggle_options();
function toggle_options() {
if ($('#id_repeat_type').val() == 'NR')
{
$("#repeat-options").hide();
}
else
{
$("#repeat-options").show();
}
};
$('#id_repeat_type').on('change', toggle_options);
});
这将创建一个函数,并首先运行它。 if
声明中有一个拼写错误。此外,当您在on('change',toggle_options)
中调用该函数时,请不要包括括号(即NOT toggle_options()
)
答案 2 :(得分:0)
调用.change()
最初致电change-handler
请注意,带有toggle
的{{1}}可用于Boolean
个元素
show/hide
$(document).ready(function() {
function toggle_options() {
$("#repeat-options").toggle(this.value != 'NR');
};
$('#id_repeat_type').on('change', toggle_options).change();
});