-
Notifications
You must be signed in to change notification settings - Fork 421
/
control.html
94 lines (88 loc) · 2.55 KB
/
control.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>Controller Example</title>
<style type="text/css">
body {font-family: verdana}
.tabs {
padding: 0px; margin: 0px;
}
.tabs li {
float: left;
padding: 10px;
background-color: #F6F6F6;
list-style: none;
margin-left: 10px;
}
.tabs li a {
color: #1C94C4;
font-weight: bold;
text-decoration: none;
}
.tabs li.active a {
color: #F6A828;
cursor: default;
}
.tab {
border: solid 1px #F6A828;
}
/* clearfix from jQueryUI */
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
.ui-helper-clearfix { display: inline-block; }
/* required comment for clearfix to work in Opera \*/
* html .ui-helper-clearfix { height:1%; }
.ui-helper-clearfix { display:block; }
/* end clearfix */
</style>
</head>
<body>
<div id="demo-html">
<ul id="tabs" class="tabs ui-helper-clearfix">
<li><a href="#tab1">Model</a></li>
<li><a href="#tab2">View</a></li>
<li><a href="#tab3">Controller</a></li>
</ul>
<div id="tab1" class="tab">
Model Content
</div>
<div id="tab2" class="tab">
View Content
</div>
<div id="tab3" class="tab">
Controller Content
</div>
</div>
<script type="text/javascript" src="../node_modules/steal/steal.js" main="@empty"></script>
<script type="text/javascript" id="demo-source">
steal('jquery','can/control', function($, Control){
// create a new Tabs class
var Tabs = Control.extend({
// initialize widget
init: function( el ) {
// activate the first tab
$( el ).children( 'li:first' ).addClass( 'active' );
// hide the other tabs
var tab = this.tab;
this.element.children( 'li:gt(0)' ).each(function() {
tab( $( this ) ).hide();
});
},
// helper function finds the tab for a given li
tab: function( li ) {
return $( li.find( 'a' ).attr( 'href' ) );
},
// hides old active tab, shows new one
'li click': function( el, ev ) {
ev.preventDefault();
this.tab( this.element.find( '.active' )
.removeClass( 'active' ) ).hide()
this.tab( el.addClass( 'active' ) ).show();
}
});
// adds the controller to the element
new Tabs( '#tabs' );
});
</script>
</body>
</html>