diff options
-rw-r--r-- | demos/selectmenu/custom_render.html | 120 | ||||
-rw-r--r-- | demos/selectmenu/images/24-podcast-square.png | bin | 0 -> 681 bytes | |||
-rw-r--r-- | demos/selectmenu/images/24-rss-square.png | bin | 0 -> 594 bytes | |||
-rw-r--r-- | demos/selectmenu/images/24-video-square.png | bin | 0 -> 649 bytes | |||
-rw-r--r-- | ui/jquery.ui.selectmenu.js | 10 |
5 files changed, 125 insertions, 5 deletions
diff --git a/demos/selectmenu/custom_render.html b/demos/selectmenu/custom_render.html new file mode 100644 index 000000000..c2620c3db --- /dev/null +++ b/demos/selectmenu/custom_render.html @@ -0,0 +1,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> diff --git a/demos/selectmenu/images/24-podcast-square.png b/demos/selectmenu/images/24-podcast-square.png Binary files differnew file mode 100644 index 000000000..3c3e38f3f --- /dev/null +++ b/demos/selectmenu/images/24-podcast-square.png diff --git a/demos/selectmenu/images/24-rss-square.png b/demos/selectmenu/images/24-rss-square.png Binary files differnew file mode 100644 index 000000000..f59b69ed3 --- /dev/null +++ b/demos/selectmenu/images/24-rss-square.png diff --git a/demos/selectmenu/images/24-video-square.png b/demos/selectmenu/images/24-video-square.png Binary files differnew file mode 100644 index 000000000..ce50ccfde --- /dev/null +++ b/demos/selectmenu/images/24-video-square.png diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js index c0d6fbe40..4b385f6dd 100644 --- a/ui/jquery.ui.selectmenu.js +++ b/ui/jquery.ui.selectmenu.js @@ -97,7 +97,7 @@ $.widget( "ui.selectmenu", { // wrap and insert new button that.newelementWrap = $( '<span />' ) - .addClass( that.widgetBaseClass + '-button' ) + .addClass( 'ui-selectmenu-button' ) .append( that.newelement ) .insertAfter( that.element ); }, @@ -125,7 +125,7 @@ $.widget( "ui.selectmenu", { // wrap list that.listWrap = $( '<div />' ) - .addClass( that.widgetBaseClass + '-menu' ) + .addClass( 'ui-selectmenu-menu' ) .width( setWidth ) .append( that.list ) .appendTo( options.appendTo ); @@ -207,7 +207,7 @@ $.widget( "ui.selectmenu", { if ( !options.disabled ) { // close all other selectmenus - $( '.' + that.widgetBaseClass + '-open' ).not( that.newelement ).each( function() { + $( '.ui-selectmenu-open' ).not( that.newelement ).each( function() { $( this ).children( 'ul.ui-menu' ).data( 'element.selectelemenu' ).selectmenu( 'close' ); }); @@ -217,7 +217,7 @@ $.widget( "ui.selectmenu", { .removeClass( 'ui-corner-all' ); } - that.listWrap.addClass( that.widgetBaseClass + '-open' ); + that.listWrap.addClass( 'ui-selectmenu-open' ); that.list.menu( "focus", null, currentItem ); if ( !options.dropdown ) { @@ -255,7 +255,7 @@ $.widget( "ui.selectmenu", { .removeClass( 'ui-corner-top' ); } - that.listWrap.removeClass( that.widgetBaseClass + '-open' ); + that.listWrap.removeClass( 'ui-selectmenu-open' ); this.opened = false; if (focus) that.newelement.focus(); |