aboutsummaryrefslogtreecommitdiffstats
path: root/demos/selectmenu/custom_render.html
blob: c2620c3db272d620e64d3d33fcc67bcd026f4545 (plain)
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>jQuery UI Selectmenu - Default functionality</title>
	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
	<script src="../../jquery-1.6.2.js"></script>
	<script src="../../ui/jquery.ui.core.js"></script>
	<script src="../../ui/jquery.ui.widget.js"></script>
	<script src="../../ui/jquery.ui.position.js"></script>
	<script src="../../ui/jquery.ui.button.js"></script>
	<script src="../../ui/jquery.ui.menu.js"></script>
	<script src="../../ui/jquery.ui.selectmenu.js"></script>
	<link rel="stylesheet" href="../demos.css">
	<script>
	$(function() {
	
		$.widget( "custom.iconselectmenu", $.ui.selectmenu, {
			_renderItem: function( ul, item ) {
				var li = $( "<li />" ).data( "item.selectmenu", item );
				if ( item.disabled ) {
					li.addClass( 'ui-state-disabled' ).text( item.label );
				} else {
					el = item.element;
					var link = $( "<a />", {
							html: icon = '<span style="' + el.attr("style") + '" class="ui-icon ' + el.attr("class") + '"></span>' + item.label,
							href: '#'
						});
					li.append( link );
				}			
			
				return li.appendTo( ul );
			}
		});	
		
		var files = $('select#files').iconselectmenu({
			dropdown: false
		});
		files.iconselectmenu("widget").children("ul").addClass("ui-menu-icons");
				
		var filesB = $('select#filesB').iconselectmenu({
			dropdown: false
		});
		filesB.iconselectmenu("widget").children("ul").addClass("ui-menu-icons customicons");
			
		var peopleA = $('select#peopleA').iconselectmenu();
		peopleA.iconselectmenu("widget").children("ul").addClass("ui-menu-icons avatar");
	});
	</script>
	<style>
		form { margin: 100px 0 0 0 }
		h2 { margin: 30px 0 0 0 }
		fieldset { border: 0; }
		label { display: block; }
		select { width: 200px; }
		
		.ui-selectmenu-menu .ui-menu .ui-icon {	top: 0.4em; }
		.ui-selectmenu-menu .ui-menu .ui-menu-item a { padding-left: 2em; }
				
		/* select with custom icons */
		.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item a { padding: 0.5em 0 0.5em 3em; }
		.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item a .ui-icon { height: 24px; width: 24px; top: 0.2em;}
		.ui-icon.video { background: url(images/24-video-square.png) 0 0 no-repeat; }
		.ui-icon.podcast { background: url(images/24-podcast-square.png) 0 0 no-repeat; }
		.ui-icon.rss { background: url(images/24-rss-square.png) 0 0 no-repeat; }
		
		/* native select with CSS avatar icons */
		option.avatar { background-repeat: no-repeat !important; padding-left: 20px; }
	</style>
</head>
<body>
	
<div class="demo">

<form action="#">	

		<h2>"popup" style with framework icons</h2>
		<fieldset>
			<label for="files">Select a File:</label>
			<select name="files" id="files">
				<option value="jquery" class="ui-icon-script">jQuery.js</option>
				<option value="jquerylogo" class="ui-icon-image">jQuery Logo</option>
				<option value="jqueryui" class="ui-icon-script">ui.jQuery.js</option>
				<option value="jqueryuilogo" selected="selected" class="ui-icon-image">jQuery UI Logo</option>
				<option value="somefile">Some unknown file</option>
			</select>
		</fieldset>
		
		<h2>"popup" style with custom icon images</h2>
		<fieldset>
			<label for="filesB">Select a File:</label>
			<select name="filesB" id="filesB">
				<option value="mypodcast" class="podcast">John Resig Podcast</option>
				<option value="myvideo" class="video">Scott Gonzales Video</option>
				<option value="myrss" class="rss">jQuery RSS XML</option>
			</select>
		</fieldset>		
				
		<h2>"dropdown" style with custom avatar 16x16 images as CSS background</h2>
		<fieldset>
			<label for="peopleA">Select a Person:</label>
			<select name="peopleA" id="peopleA">
				<option value="1" class="avatar" style="background-image: url(http://www.gravatar.com/avatar/b3e04a46e85ad3e165d66f5d927eb609?d=monsterid&r=g&s=16);">John Resig</option>
				<option value="2" class="avatar" style="background-image: url(http://www.gravatar.com/avatar/e42b1e5c7cfd2be0933e696e292a4d5f?d=monsterid&r=g&s=16);">Tauren Mills</option>
				<option value="3" class="avatar" style="background-image: url(http://www.gravatar.com/avatar/bdeaec11dd663f26fa58ced0eb7facc8?d=monsterid&r=g&s=16);">Jane Doe</option>
			</select>
		</fieldset>
		
</form>

</div><!-- End demo -->



<div class="demo-description">
<p>The whole rendering process is extendable to make custom styling as easy as possible.</p>
</div><!-- End demo-description -->

</body>
</html>