无法让Checkboxes停止显示隐藏的Div

时间:2014-02-02 22:43:31

标签: javascript

我已经插入了一些javascript以获得两个复选框,特别是在检查时显示隐藏的Div,并在取消选中时使Div消失。我遇到的问题是,所有其他复选框都会在检查时显示Div。现在它们不像原来的两个复选框一样淡入淡出或淡出。相反,他们的其他复选框只会使隐藏的Div出现。如何防止其他复选框影响Div。

页面为http://asilverwareaffair.net/_NEW/request-a-quote/

正确的复选框是:

  

结婚宴会(仪式在场外)
  结婚宴会(现场仪式)

它们位于“事件详细信息”部分的“事件类型”

Div: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 ...对我来说没有意义。

2 个答案:

答案 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();
});

即使您删除了上述脚本,这也是“正常工作”的原因。