我有一个要求


显示/隐藏一个部分复选框



这就是我尝试的


< script>
 j $('#type') .on('change',function()
 {

 if(this.value =='Technical Issue'){
 j $('#techtroubleshootoption')。show ();
 j $('#forceemailcase')。show();
 j $('#main')。hide();
}
 else {&# xA; j $('#techtroubleshootoption')。hide();
 j $('#forceemailcase')。hide();
 j $('#main')。show();& #xA;}
});
 j $('#chkforcemailcase')。click(function()
 {
 if(this.checked){
 j $('#techtroubleshootoption')。hide();
 j $('#forceemailcase')。show();
 j $('#main')。show();
 }
 else {
 j $('#techtroubleshootoption')。show();
 j $('#forceemailcase')。show();
 j $('# main')。hide();
}
});
< / script>

&#xA;&#xA; < p>第一个功能正在工作,在选择了所需的值时,它显示/隐藏了下面的部分,bu在选择复选框时,它没有做任何事情。&#xA;&#xA; &#xA;&#xA;&#xA;解决方法
&#xA;
如果将第二个函数放入另一个&lt; script&gt; < / code>标签它的工作原理很好。现在,我的问题是为什么它不能在相同的
&lt; script&gt;
标记中工作,并且它是正确的方式来声明多个&lt; script&gt;
标记对于每个功能(这对我来说听起来不对)。
答案 0 :(得分:2)
您需要使用$(document).ready()
$(document).ready(function() {
j$('#type').on('change', function() {
if(this.value == 'Technical Issue'){
j$('#techtroubleshootoption').show();
j$('#forceemailcase').show();
j$('#main').hide();
}
else{
j$('#techtroubleshootoption').hide();
j$('#forceemailcase').hide();
j$('#main').show();
}
});
j$('#chkforcemailcase').click( function()
{
if(this.checked){
j$('#techtroubleshootoption').hide();
j$('#forceemailcase').show();
j$('#main').show();
}
else{
j$('#techtroubleshootoption').show();
j$('#forceemailcase').show();
j$('#main').hide();
}
});
});
答案 1 :(得分:1)
如果要初始化事件,则应在文档准备就绪时执行此操作,而不是直接在脚本标记中执行。脚本标签通常是一种竞争条件,当涉及在呈现DOM时可用的元素时。