基于jquery封装通用的控制显示隐藏的方法

应用场景

在项目中会存在大量这样的需求:

1.选择不同的radio单选框,页面上的部分内容随之显示隐藏

2.选择不同的option下拉框内容,页面上的部分内容随之显示隐藏

如果每次遇到这类需求都单独写方法,不光费时间,还会让我们的代码显得异常冗余,因此我们写个通用方法!

附上代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <style>
        .commonCss{
            height: 100px;
            line-height: 100px;
            text-align: center;
            border: 1px solid red;
        }
    </style>
</head>
<body>
<div class="commonCss div1 initHide">div1</div>
<div class="commonCss div2 initHide">div2</div>
<div class="commonCss div3 initHide">div3</div>
<div>
    <form action="">
        <div>
            <label>radio1</label>
            <input type="radio" name="radio" data-show-class=".div1" data-hide-class=".initHide">
            <label>radio2</label>
            <input type="radio" name="radio" data-show-class=".div2" data-hide-class=".initHide">
            <label>radio3</label>
            <input type="radio" name="radio" data-show-class=".div3" data-hide-class=".initHide">
        </div>
        <div>
            <select>
                <option value="">请选择</option>
                <option value="1" data-show-class=".div1" data-hide-class=".initHide">option1</option>
                <option value="2" data-show-class=".div2" data-hide-class=".initHide">option2</option>
                <option value="3" data-show-class=".div3" data-hide-class=".initHide">option3</option>
            </select>
        </div>
    </form>
</div>
<script>
    var myFunction = {
        initRadio : function(){
            $(‘input:radio‘).on(‘change‘,function(){
                var $showClass = $(this).data(‘showClass‘);
                var $hideClass = $(this).data(‘hideClass‘);
                $($hideClass).hide();
                $($showClass).show();
            })
        },
        initSelect : function(){
            $(‘select‘).on(‘change‘,function(){
                var $target = $(this).find(‘option:selected‘);
                var $showClass = $target.data(‘showClass‘);
                var $hideClass = $target.data(‘hideClass‘);
                $($hideClass).hide();
                $($showClass).show();
            })
        }
    };
    myFunction.initRadio();
    myFunction.initSelect();
</script>
</body>
</html>
时间: 2024-10-12 20:47:40

基于jquery封装通用的控制显示隐藏的方法的相关文章

jQuery控制显示隐藏事件小插曲

eg.一页面中有a.b两部分,a部分有个筛选图标,我希望一开始的时候a是显示的,b是隐藏的,当点击筛选图标时,a隐藏,b显示:然后在b页面里有个返回按钮,希望点击b中的返回按钮时a显示b隐藏,搞了半天,记录一下教训: <a class="store-value-condition" style="float: right;margin: 10px;"> <img src="../images/select.png" class=

基于Jquery插件Uploadify实现实时显示进度条上传图片

网址:http://www.jb51.net/article/83811.htm 这篇文章主要介绍了基于Jquery插件Uploadify实现实时显示进度条上传图片的相关资料,感兴趣的小伙伴们可以参考一下 先了解了解Uploadify,具体内容如下 Uploadify是一个简单易用的多文件上传方案.作为一个Jquery插件,Uploadify使用简单,并具有高度的定制性. Uploadify特性: Uploadify简单说来,是基于Jquery的一款文件上传插件.它的功能特色总结如下: 1).支

线程安全变量控制显示隐藏loading框

一.线程安全变量控制显示隐藏loading框 问题描述: 同一页面有两个异步网络请求,第一个请求开始,loading旋转,第二个请求开始loading旋转,第一个结束,loading停止旋转,可是这时第二个请求还没有结束,然后loading就结束了,于是问题就来了. 解决方案: 二.由上面问题引申出的问题: 1. #import <libkern/OSAtomic.h> 这段话是从网上copy过来的,总结了一下原子操作的作用.但是文中提到的osbase.h文件找不到.可能是因为版本升级我的li

基于jQuery点击淡入淡出显示图片特效

分享一款基于jQuery点击淡入淡出显示图片特效.这是一款基于jQuery+CSS3实现酷炫效果的图片切换特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <center><p style="color:#334960">点击图标进行展示</p></center> <div class="main"> <div id="coolShow"><

Jquery not选择器实现元素显示隐藏

初初认识jQuery的not选择器,想要实现的功能是,点击第一个div,显示第二个div,点击第一个div以外的地方,隐藏第二个div. 具体代码如下: <!DOCTYPE html> <html> <head> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(

CSS 相对/绝对(relative/absolute)定位与jQuery的控制显示隐藏

曾经写显示隐藏老是用jq方法控制: dom.show(); dom.hide(); 事实上这样还是有非常多缺陷的. 这是html结构: <div class="holi"> here are some test words </div> <div id="button">点击显示</div> 假设使用position:absolute和top-9999px控制点隐藏 .holi{ width: 200px; heigh

Laravel 无刷新重新排序+控制显示隐藏

要求是做到无刷新地排序.显示隐藏 路由: Route::post('cate/changeorder', '[email protected]'); Route::post('cate/changeshow', '[email protected]'); 控制器: //更改排序 public function changeOrder() { $input = Input::all(); $cate = GoodsCates::find($input['cate_id']); $cate->ord

js中按钮控制显示隐藏以及下拉功能

<script> function show() { var a2=document.getElementById("div2"); if(a2.style.display=="block") { a2.style.display="none"; } else { a2.style.display="block"; } } </script> <input type="button&qu

jquery的toggle动画效果显示隐藏

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ border: 1px solid white; width: 500px; height: 350px; margin: auto; text-align: center; } </