我已经插入了一些javascript以获得两个复选框,特别是在检查时显示隐藏的Div,并在取消选中时使Div消失。我遇到的问题是,所有其他复选框都会在检查时显示Div。现在它们不像原来的两个复选框一样淡入淡出或淡出。相反,他们的其他复选框只会使隐藏的Div出现。如何防止其他复选框影响Div。
页面为http://asilverwareaffair.net/_NEW/request-a-quote/
正确的复选框是:
结婚宴会(仪式在场外)
结婚宴会(现场仪式)
它们位于“事件详细信息”部分的“事件类型”
下id="weddingselect" class="hide"
已隐藏,但在选中任何复选框时会显示。但是,当选中并取消选中上面的正确复选框时,它会正确淡入淡出。什么会导致页面上的所有其他复选框使“婚礼选择”Div变得可见,我该如何阻止它们?
这是我用来使婚礼接收复选框淡入淡出的JavaScript:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$('#wedchk1').change(function () {
if (this.checked)
// ^
$('#weddingselect').fadeIn('slow');
else
$('#weddingselect').fadeOut('slow');
});
$('#wedchk2').change(function () {
if (this.checked)
// ^
$('#weddingselect').fadeIn('slow');
else
$('#weddingselect').fadeOut('slow');
});
});
</script>
HOWEVER :我不认为我的javascript与它有任何关系,因为如果我删除所有javascript页面上的复选框仍然会在检查时显示隐藏div ...对我来说没有意义。
答案 0 :(得分:0)
使用$(this)
而不是this
。
this
用于本机Javascript,$(this)
用于jQuery。
同时使用$(this).is(':checked')
代替$(this).checked.
。
最后,对if else
语句使用{}。
$(document).ready(function () {
$('#wedchk1').change(function () {
if ($(this).is(':checked')) {
$('#weddingselect').fadeIn('slow');
}
else {
$('#weddingselect').fadeOut('slow');
}
});
$('#wedchk2').change(function () {
if ($(this).is(':checked')) {
$('#weddingselect').fadeIn('slow');
}
else {
$('#weddingselect').fadeOut('slow');
}
});
});
答案 1 :(得分:0)
您的custom.js
:
$('input[type="checkbox"]').change(function () {
if (this.checked) {
var chkVal = (this.value);
if(chkVal="Wedding Reception"){
$('#weddingselect').show();
//$('#weddingselect').css()
}else{
$('#weddingselect').hide();
}
}
//$('#weddingselect').hide();
});
即使您删除了上述脚本,这也是“正常工作”的原因。