2

我对 Javascript 很陌生,似乎找不到我正在寻找的信息。我试图在单击“是”单选按钮时使另一个 div 向下滑动,并在单击“否”时向上滑动。但是,当我单击任何一个时,什么都没有发生。这是我当前的代码:

HTML:

<div class="field">
<label for="">Apprentice</label>
<div class="topRadio">
<input name="apprentice" group="apprentice" type="radio" value="Yes" onclick="dropbcitdown()">
<label for="">Yes</label>
<input name="apprentice" group="apprentice" type="radio" value="No" onclick="pickbcitup()">
<label for="">No</label>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>

<div class="field slidingdiv" id="doyouattend">
<label for="">Do you attend BCIT?</label>
<div class="topRadio">
<input name="bcit" group="bcit" type="radio" value="Yes" onclick="droptransportationdown()">
<label for="">Yes</label>
<input name="bcit" group="bcit" type="radio" value="No" onclick="picktransportationup()">
<label for="">No</label>
<div class="clear"></div>
</div>
<div class ="clear"></div>
</div>

<div class="field slidingdiv" id="doyouneed">
<label for="">Do you need ground transportation to city hall?</label>
<div class="topRadio">
<input name="transportation" group="transportation" type="radio" value="Yes">
<label for="">Yes</label>
<input name="transportation" group="transportation" type="radio" value="No">
<label for="">No</label>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>

Javascript

<script>
function bcitDown() {
    $("#doyouattend").slideDown("slow" function() {
        $(this).css({
        display: "inline";
        })
    })
}

function bcitUp() {
    $("#doyouattend").slideUp("slow" function() {
        $(this).css({
        display: "none";
        })
    })
}

function transportationDown() {
    $("#doyouneed").slideDown("slow" function() {
        $(this).css({
        display: "inline";
        })
    })
}

function transportationUp() {
    $("#doyouneed").slideUp("slow" function() {
        $(this).css({
        display: "none";
        })
    })
}
</script>

我也试过用单选按钮的值来做,但我不能在它们下拉之前提交。不相关,但如果有人想知道为什么会发生这种情况,则“换行”。我试过在没有那个的情况下运行它,并且没有不同的结果。如果我犯了一个明显的语法错误,或者这最终是我完全错过的一些明显的解决方案,我很抱歉。我只是觉得我已经尝试了一切。注意:我已经包含了 JQuery。

4

2 回答 2

4

首先添加Jquery库

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

试试这个之后:

<script>
$(document).ready(function(){
    $('input[name=apprentice]').click(function(){
    if ($(this).val() == 'yes')
    {
       $("#yourdiv").slideDown('slow');
    }
    else
    {
       $("#yourdiv").slideUp('slow');
    }
    });

}):
</script>
于 2013-11-06T19:58:09.960 回答
1

您只能将 jquery 函数应用于jquery 对象。通过使用 getElementById() 进行选择,您将获得 DOM 对象但没有 Jquery 对象。这就是为什么你在函数中使用 $(this) 来更改 css。

我建议使用:

function dropbcitdown() {
    $("#doyouattend").slideDown("slow" function() {
        $(this).css({
        display: "inline";
        })
    })
}
于 2013-11-06T19:39:10.193 回答