远离JS灾难css灾难之 js私有函数和css选择器作为容器

简介: 当一个项目庞大到一定阶段,例如UI展示层采用了模块化模板化之后,就会出现js灾难,css灾难,经常出现以前从来不放在一起的两个js或css莫名奇妙的被放到了一个页面,基本的原因是模块重用造成的     尽管js可以想面向对象那样去构造对象,隐藏私有方法,但需求变化的往往比你写程序还要快时,就连...

  当一个项目庞大到一定阶段,例如UI展示层采用了模块化模板化之后,就会出现js灾难,css灾难,经常出现以前从来不放在一起的两个js或css莫名奇妙的被放到了一个页面,基本的原因是模块重用造成的

    尽管js可以想面向对象那样去构造对象,隐藏私有方法,但需求变化的往往比你写程序还要快时,就连设计js对象的时间也没有了,所以我比较倾向于用js私有函数和js方法;jquery私有函数和jquery对外暴露方法的形式也可以实现,而页面生成的html结构则完全在js中生成,包括哪些id和class, 这样可以最大限度的确保统一和重用的方便性,但也有个缺点,就是在重用时,如果需要样式发生变化(结构是死的不能变化),就需要用div将原来的结构包起来,相关的样式也需要用对应的id包裹一遍,如果是新增的事件等就只能采用绑定的方式,暂时还没有好的方法

例如,我面要实现 在一个div中包含几张图片

这样做也有个缺点 就只 css 必须得复制一次 在做修改 但对结构和样式以及js可以重用

 

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript">

        var publicSetDiv = function (url, id) {
            //作为对外公开的,可以传参就行
            this.makediv = function (j) {
                var imglist = makeimglist(url, j);
                $(id).html(imglist);
                $(id).show();
            }

            //私有的
            function makeimglist(url, j) {
                var i = 0;
                //var j = 10;
                var html = "";

                for (i; i < j; i++) {
                    html += "<img src='" + url + "' class='item' />";
                }
                return html;
            }


        }



        $(document).ready(function () {
            // Handler for .ready() called.
            var mytest = new publicSetDiv("http://images.cnblogs.com/logo_small.gif", "#test");
            mytest.makediv(10);

            var mytest2 = new publicSetDiv("http://images.cnblogs.com/logo_small.gif", "#test2");
            mytest2.makediv(10);
        });
    


    </script>
<%--    原始默认 的样式--%>
    <style type="text/css">
        .item{ width:200px; height:100px; }
        

        #test2 .item{ width:200px; height:100px; }
    </style>
<%--     第二次使用该样式并稍作修改  --%>
        <style type="text/css">
        #test2 .item{ width:200px; height:200px;  background-color:Black; }
    </style>

</head>
<body>
    <form id="form1" runat="server">
    第一次使用
    <div id="test" style=" display:none;">
    </div>

   <div id="test2" style=" display:none;">
    </div>


    </form>
</body>
</html>
test
相关文章
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
524 19
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
375 32
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
768 33
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
371 24
|
JavaScript 前端开发
页面滚动触发css3动画js插件
delighters.js是一款页面滚动触发css3动画js插件。该js插件可以在页面向下滚动时,为进入浏览器视口的元素制作各种炫酷的CSS3动画效果。
300 13
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
纸屑飘落生日蛋糕场景js+css3动画特效
纸屑飘落生日蛋糕CSS3动画特效是一款js+css3制作的全屏纸屑飘落,生日蛋糕点亮庆祝动画特效。
314 3
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
489 3