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


Posted in Javascript onDecember 11, 2011

尽管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>
Javascript 相关文章推荐
JS运行耗时操作的延时显示方法
Nov 19 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
Jan 17 Javascript
jQuery简单实现禁用右键菜单
Mar 10 Javascript
基于jquery实现省市联动效果
Nov 23 Javascript
location.hash保存页面状态的技巧
Apr 28 Javascript
angularjs封装bootstrap时间插件datetimepicker
Jun 20 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
基于JavaScript实现选项卡效果
Jul 21 Javascript
JavaScript如何对图片进行黑白化
Apr 10 Javascript
基于layui数据表格以及传数据的方式
Aug 19 Javascript
Vue通过配置WebSocket并实现群聊功能
Dec 31 Javascript
vue+swiper实现左右滑动的测试题功能
Oct 30 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
Dec 11 #Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 #Javascript
一个简单的js树形菜单
Dec 09 #Javascript
JS构建页面的DOM节点结构的实现代码
Dec 09 #Javascript
电子商务网站上的常用的js放大镜效果
Dec 08 #Javascript
常见JS效果之图片减速度滚动实现代码
Dec 08 #Javascript
JQuery循环滚动图片代码
Dec 08 #Javascript
You might like
PHP的FTP学习(一)
2006/10/09 PHP
php数组去重的函数代码
2013/02/03 PHP
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
jquery 插件重新绑定的处理方法分析
2019/11/23 jQuery
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python匹配中文的正则表达式
2016/05/11 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
详解python Todo清单实战
2018/11/01 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
西班牙在线宠物商店:zooplus.es
2017/02/24 全球购物
怎样让char类型的东西转换成int类型
2013/12/09 面试题
数据库连接池的工作原理
2012/09/26 面试题
工程现场管理求职自荐信
2013/10/02 职场文书
优秀党员转正的自我评价
2013/10/06 职场文书
领导检查欢迎词
2014/01/14 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
五一劳动节活动记录
2014/03/23 职场文书
人事任命书范文
2014/06/04 职场文书
安全例会汇报材料
2014/08/23 职场文书
施工员岗位职责
2015/02/10 职场文书