jquery与html 分离

基于JQuery实现的一个选项卡效果,重点体现在HTML里没有内联事件处理程序,而是定义在js文件里,做到行为与结构的分离。在实际应用过程 中,只要保证选项卡模块结构代码的完整性,就可以任意添加N个同类选项卡,不需要手动在HTML里绑定事件处理程序以及给要隐藏显示的内容层添加ID。

No.1 Menu

  • Label 1.1
  • Label 1.2
  • Label 1.3
  • Label 1.4

No.2 Menu

  • Label 2.1
  • Label 2.2
  • Label 2.3
  • Label 2.4

Javascript(jquery)代码如下:


<
script language
=
"
javascript
"
 type
=
"
text/javascript
"
>


$(document).ready(
function
(){


    $(
"
ul.menu li:first-child
"
).addClass(
"
current
"
);


    $(
"
div.content
"
).find(
"
div.layout:not(:first-child)
"
).hide();


    $(
"
div.content div.layout
"
).attr(
"
id
"

function
(){
return
 idNumber(
"
No
"
)
+
 $(
"
div.content div.layout
"
).index(
this
)});


    $(
"
ul.menu li
"
).click(
function
(){


        
var
 c 
=
 $(
"
ul.menu li
"
);


        
var
 index 
=
 c.index(
this
);


        
var
 p 
=
 idNumber(
"
No
"
);

10 
        show(c,index,p);

11 
    });

12

13 
    
function
 show(controlMenu,num,prefix){

14 
        
var
 content
=
 prefix 
+
 num;

15 
        $(

#

+
content).siblings().hide();

16 
        $(

#

+
content).show();

17 
        controlMenu.eq(num).addClass(
"
current
"
).siblings().removeClass(
"
current
"
);

18 
    };

19

20 
    
function
 idNumber(prefix){

21 
        
var
 idNum 
=
 prefix;

22 
        
return
 idNum;

23 
    };

24 
});

25 
<
/
script>

CSS样式代码如下:


<style type="text/css">



{
margin
:
0
;
 padding
:
0
}


ul,li 
{
 list-style
:
none
}


.box 
{
width
:
450px
;
 height
:
150px
;
 border
:
1px solid #ccc
;
 margin
:
10px
;
 font-size
:
12px
;
 font-family
:
Verdana, Arial, Helvetica, sans-serif
}


.tagMenu 
{
height
:
28px
;
 line-height
:
28px
;
 background
:
#efefef
;
 position
:
relative
;
 border-bottom
:
1px solid #999
}


.tagMenu h2 
{
font-size
:
12px
;
 padding-left
:
10px
;
}


.tagMenu ul 
{
position
:
absolute
;
 left
:
100px
;
 bottom
:
-1px
;
 height
:
26px
;
}


ul.menu li 
{
float
:
left
;
 margin-bottom
:
1px
;
 line-height
:
16px
;
 height
:
14px
;
 margin
:
5px 0 0 -1px
;
 border-left
:
1px solid #999
;
 text-align
:
center
;
 padding
:
0 12px
;
 cursor
:
pointer
}


ul.menu li.current 
{
border
:
1px solid #999
;
 border-bottom
:
none
;
 background
:
#fff
;
 height
:
25px
;
 line-height
:
26px
;
 margin
:
0
}

10 
.content 
{
 padding
:
10px
}

11 
</style>

HTML结构代码如下:


<
body
>


<
div 
class
="box"
>


    
<
div 
class
="tagMenu"
>


        
<
h2
>
No.1 Menu
</
h2
>


        
<
ul 
class
="menu"
>


            
<
li
>
Label 1.1
</
li
>


            
<
li
>
Label 1.2
</
li
>


            
<
li
>
Label 1.3
</
li
>


            
<
li
>
Label 1.4
</
li
>

10 
        
</
ul
>

11 
    
</
div
>

12 
    
<
div 
class
="content"
>

13 
        
<
div 
class
="layout"
>
infomation 1.1
</
div
>

14 
        
<
div 
class
="layout"
>
infomation 1.2
</
div
>

15 
        
<
div 
class
="layout"
>
infomation 1.3
</
div
>

16 
        
<
div 
class
="layout"
>
infomation 1.4
</
div
>

17 
    
</
div
>

18 
</
div
>

19

20 
<
div 
class
="box"
>

21 
    
<
div 
class
="tagMenu"
>

22 
        
<
h2
>
No.2 Menu
</
h2
>

23 
        
<
ul 
class
="menu"
>

24 
            
<
li
>
Label 2.1
</
li
>

25 
            
<
li
>
Label 2.2
</
li
>

26 
            
<
li
>
Label 2.3
</
li
>

27 
            
<
li
>
Label 2.4
</
li
>

28 
        
</
ul
>

29 
    
</
div
>

30 
    
<
div 
class
="content"
>

31 
        
<
div 
class
="layout"
>
infomation 2.1
</
div
>

32 
        
<
div 
class
="layout"
>
infomation 2.2
</
div
>

33 
        
<
div 
class
="layout"
>
infomation 2.3
</
div
>

34 
        
<
div 
class
="layout"
>
infomation 2.4
</
div
>

35 
    
</
div
>

36 
</
div
>

37 
</
body
>

时间: 2024-10-29 19:48:39

jquery与html 分离的相关文章

区域及分离、Js压缩、css、jquery扩展

后台管理区域及分离.Js压缩.css.jquery扩展 本系列目录:ASP.NET MVC4入门到精通系列目录汇总 有好一段时间没更新博文了,最近在忙两件事:1.看书,学习中...2.为公司年会节目做准备,由于许久没有练习双截棍了,难免生疏,所以现在临时抱佛脚.深圳最近的天气反常,许多人感冒了,我也成为其中之一,大家注意身体... 这一篇,我来简单的讲一下接下来项目中会用到的一些杂七杂八的技术. 区域及分离 在15.ASP.NET MVC入门到精通——MVC-路由中,我已经简要说明了区域的分离.

26、ASP.NET MVC入门到精通——后台管理区域及分离、Js压缩、css、jquery扩展

本系列目录:ASP.NET MVC4入门到精通系列目录汇总 有好一段时间没更新博文了,最近在忙两件事:1.看书,学习中...2.为公司年会节目做准备,由于许久没有练习双截棍了,难免生疏,所以现在临时抱佛脚.深圳最近的天气反常,许多人感冒了,我也成为其中之一,大家注意身体... 这一篇,我来简单的讲一下接下来项目中会用到的一些杂七杂八的技术. 区域及分离 在15.ASP.NET MVC入门到精通——MVC-路由中,我已经简要说明了区域的分离. 1.右键单击Web项目,“添加”——“区域”,区域名,

jQuery分离构造器

http://www.imooc.com/code/3401 通过new操作符构建一个对象,一般经过四步: A.创建一个新对象   B.将构造函数的作用域赋给新对象(所以this就指向了这个新对象)   C.执行构造函数中的代码   D.返回这个新对象 最后一点就说明了,我们只要返回一个新对象即可.其实new操作符主要是把原型链跟实例的this关联起来,这才是最关键的一点,所以我们如果需要原型链就必须要new操作符来进行处理.否则this则变成window对象了. 下面这个例子,console结

jQuery表单验证插件——validation(实现行为和结构分离)

<!DOCTYPE html><meta charset="utf-8"><html><head> <title></title> <style type="text/css"> *{ font-family: Verdana,font-size:96%; } label{width: 10em;float: left;} label.error{ float: none; colo

Jquery行为层和表示层的分离

网页的结构层.表示层和行为层分离的越彻底,维护及更新就越容易.结构层和表示层可以彻底的分离,结构层和行为层也可以分离,但是当用行为层来操纵表示层时,情况就有些麻烦. 当在javascript里改变css时,我们可能会直接在Javascript代码用诸如tr.style.color="red"这样的语句来操纵.但是如果我们这样做的话就违背了三个层面相互分离的原则,对以后的维护也不利.因为假如以后要把red改为blue,我们就不是在css里来改变,而是得在javascript代码里来寻找改

JQuery/JS插件 jsTree checkbox选中事件 和 节点选中事件 分离版

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div id="plugins1"></div> <link href="dist/themes/default/style.min.css" rel

jquery和vue对比

jquery和vue对比 前言:很多人说jquey和vue没有什么可比的,应该和Angular,React来比吧,我到觉得他们倒没有多大的可比性,都是基于mvvm思想设计的框架,无非就是实现的方式不一样,在不同场景下性能上会有一些差异.然而从jquery到vue或者说是到mvvm的转变则是一个思想想的转变,是将原有的直接操作dom的思想转变到操作数据上去,难道不是一个根本性的改变吗? 1.jquery介绍:想必大家都用过jquery吧,这个曾经也是现在依然最流行的web前端js库,可是现在无论是

jquery源码学习笔记(一)jQuery的无new构建

本人是一名.net程序员..... 你一个.net coder 看什么jQuery 源码啊? 原因吗,很简单.技多不压身吗(麻蛋,前端工作好高...羡慕). 我一直都很喜欢JavaScript,废话不多说了,直接切入正题. 最近看了好几篇jQuery 源码的文章,对于jQuery的无new构建  很是不解. 查了很多资料,总算是搞明白了. jQuery的无new构建 jQuery框架的核心就是从HTML文档中匹配元素并对其执行操作. 回想一下使用 jQuery 的时候,实例化一个 jQuery

【JQ成长笔记】jQuery Validate验证插件

validate是一款很好的jq插件,提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API.所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言. 需要引入的js 1 <script type="text/javascript" src="../../scripts/jquery-1.3.1.js&qu