读书人

jq对radio的控制有关问题

发布时间: 2012-09-21 15:47:26 作者: rapoo

jq对radio的控制问题
需要达到的效果很简单,就是有两个单选扭,后面分别对应两个下拉菜单,下拉菜单display:none,选中哪个radio,后面的下拉菜单就显示出来。源码在下面:

HTML code
<html><head></head><style>    .nclassify{float:left;margin:10px}    .nclassify select{display:none}</style><body>    <span class="nclassify">        <input id="ncsn1" type="radio" name="ncsn" value="政府新闻" /><label>政府新闻</label>        <select id="snc1">            <option selected>全部</option>            <option value="政府新闻类型一">政府新闻类型一</option>            <option value="政府新闻类型二">政府新闻类型二</option>            <option value="政府新闻类型三">政府新闻类型三</option>            <option value="政府新闻类型四">政府新闻类型四</option>            <option value="政府新闻类型五">政府新闻类型五</option>        </select>    </span>    <span class="nclassify">        <input id="ncsn2" type="radio" name="ncsn" value="企业新闻" /><label>企业新闻</label>        <select id="snc2">            <option selected>全部</option>            <option value="企业新闻类型一">企业新闻类型一</option>            <option value="企业新闻类型二">企业新闻类型二</option>            <option value="企业新闻类型三">企业新闻类型三</option>            <option value="企业新闻类型四">企业新闻类型四</option>            <option value="企业新闻类型五">企业新闻类型五</option>        </select>    </span></body><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>    <script>        $(function(){            $("input:radio[name='ncsn']:checked").siblings("select").css("display","block");        });        </script></html>


现在问题来了,当选中radio后,对应的select不会立刻出来,需要刷新一下才有效果,如何能让select实时根据所选radio展现呢?

[解决办法]
<script>
$(function(){
$("input:radio").click(function(){
$(this).siblings("select").css("display","block");
});
});
</script>
[解决办法]
JScript code
<script type="text/javascript">    $(function(){        $("input:radio").click(function(){            $("select").hide();            $(this).siblings("select").show();        });    });</script>
[解决办法]
探讨
JScript code
<script type="text/javascript">
$(function(){
$("input:radio").click(function(){
$("select").hide();
$(this).siblings("select").show();
}……

[解决办法]
楼主转变一下思维方式:用JQ设置display:block,还不如用show()简单。。。
个人是这么理解的

[解决办法]
$(function(){
$("input[name='ncsn']").click(function(){
$(this).siblings("select").show();
$(this).parent().siblings().find("select").hide();
});
});

读书人网 >JavaScript

热点推荐