slideUp和slideDown无法通过jQ更改功能工作

时间:2013-11-20 23:29:46

标签: javascript jquery

这是一些不起作用的简单代码。

我有选择菜单,它使用jQuery更改功能来触发。 Textarea的默认显示设置为无。

select选项只有2个值。如果选择第二个值“是”,则Textarea slideUp,此部分可用,

但如果更改回默认值'否',则Textarea应向上滑动,即slideUp()但不会。警告表明更改函数正在触发并且正在设置val变量,但我不明白,slideUp函数不会触发。

<style type="text/css">
textarea.someClass {
height:100px;
width:220px;
display:none;
}</style>
<select class="initials">
<option value="no">Initials? No</option>
<option value="yes">Initials? Yes</option>  
</select><br/>
<textarea class="someClass">Put instructions here </textarea>
<script>$('select').change(function(){
    theVal = $('select.initials').val();

    if(theVal == 'yes') {
        $('textarea.someClass').slideUp();
    } else if (theVal != 'yes') {
        $('textarea.someClass').slideDown();
        //$('.mtsa').css('display', 'none');
    }
})</script>

2 个答案:

答案 0 :(得分:1)

你的JS有点偏离 - http://jsfiddle.net/tAfU5/

<script type="text/javascript">
$('select.initials').change(function(){
    var theVal = $(this).val();

    if(theVal == 'yes') {
        $('textarea.someClass').slideDown();
    } else {
        $('textarea.someClass').slideUp();
    }
}).trigger('change');
</script>

答案 1 :(得分:0)

似乎与默认值和滑动的行为不匹配。默认情况下,没有选中,因此我们希望textarea可见。要查看此作品,请选择是,然后再次选择否。 textarea现在可见了。所以我猜两种情况之一就是这样:

  1. slideUp()slideDown()不匹配。 slideDown()显示一个元素,而slideUp()隐藏它。只需切换这两个。

  2. 您希望默认显示。为此,请将selected添加到第二个<option>代码。