diff options
author | maggiewachs <maggie@filamentgroup.com> | 2010-04-16 14:24:49 -0400 |
---|---|---|
committer | maggiewachs <maggie@filamentgroup.com> | 2010-04-16 14:24:49 -0400 |
commit | 970ed9a67a533ab44b184babf52100dfbcfa7c96 (patch) | |
tree | 423aa90362d991c62af87ec7b1a094706f46cdcd /demos | |
parent | 4ffe07457cb21332e9a33c319c1f1f610e532a27 (diff) | |
parent | d1033cc2b79067f31767bfe0bb1f9a761dae9b3f (diff) | |
download | jquery-ui-970ed9a67a533ab44b184babf52100dfbcfa7c96.tar.gz jquery-ui-970ed9a67a533ab44b184babf52100dfbcfa7c96.zip |
Merge branch 'master' of github.com:jquery/jquery-ui
Diffstat (limited to 'demos')
-rw-r--r-- | demos/autocomplete/combobox.html | 21 | ||||
-rw-r--r-- | demos/autocomplete/index.html | 3 | ||||
-rw-r--r-- | demos/autocomplete/multiple-remote.html | 75 | ||||
-rw-r--r-- | demos/autocomplete/multiple.html | 69 | ||||
-rw-r--r-- | demos/autocomplete/remote-with-cache.html | 7 | ||||
-rw-r--r-- | demos/autocomplete/remote.html | 1 | ||||
-rw-r--r-- | demos/button/splitbutton.html | 28 | ||||
-rw-r--r-- | demos/draggable/visual-feedback.html | 2 | ||||
-rw-r--r-- | demos/droppable/index.html | 1 | ||||
-rw-r--r-- | demos/droppable/shopping-cart.html | 101 | ||||
-rw-r--r-- | demos/effect/index.html | 2 | ||||
-rw-r--r-- | demos/tabs/cookie.html | 57 | ||||
-rw-r--r-- | demos/tabs/index.html | 1 |
13 files changed, 340 insertions, 28 deletions
diff --git a/demos/autocomplete/combobox.html b/demos/autocomplete/combobox.html index e5dc6c92b..3001f7d17 100644 --- a/demos/autocomplete/combobox.html +++ b/demos/autocomplete/combobox.html @@ -30,24 +30,23 @@ var matcher = new RegExp(request.term, "i"); response(select.children("option").map(function() { var text = $(this).text(); - if (!request.term || matcher.test(text)) + if (this.value && (!request.term || matcher.test(text))) return { - id: $(this).val(), - label: text.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + request.term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>"), + id: this.value, + label: text.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(request.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>"), value: text }; })); }, delay: 0, - select: function(e, ui) { + change: function(event, ui) { if (!ui.item) { // remove invalid value, as it didn't match anything $(this).val(""); return false; } - $(this).focus(); select.val(ui.item.id); - self._trigger("selected", null, { + self._trigger("selected", event, { item: select.find("[value='" + ui.item.id + "']") }); @@ -56,6 +55,7 @@ }) .addClass("ui-widget ui-widget-content ui-corner-left"); $("<button> </button>") + .attr("tabIndex", -1) .attr("title", "Show All Items") .insertAfter(input) .button({ @@ -81,7 +81,10 @@ })(jQuery); $(function() { - $("select").combobox(); + $("#combobox").combobox(); + $("#toggle").click(function() { + $("#combobox").toggle(); + }); }); </script> </head> @@ -91,7 +94,8 @@ <div class="ui-widget"> <label>Your preferred programming language: </label> - <select> + <select id="combobox"> + <option value="">Select one...</option> <option value="a">asp</option> <option value="c">c</option> <option value="cpp">c++</option> @@ -107,6 +111,7 @@ <option value="s">scala</option> </select> </div> +<button id="toggle">Show underlying select</button> </div><!-- End demo --> diff --git a/demos/autocomplete/index.html b/demos/autocomplete/index.html index 9389b076d..ba96d994e 100644 --- a/demos/autocomplete/index.html +++ b/demos/autocomplete/index.html @@ -16,6 +16,9 @@ <li><a href="combobox.html">Combobox</a></li> <li><a href="custom-data.html">Custom data and display</a></li> <li><a href="xml.html">XML data parsed once</a></li> + <li><a href="categories.html">Categories</a></li> + <li><a href="multiple.html">Multiple values</a></li> + <li><a href="multiple-remote.html">Multiple, remote</a></li> </ul> </div> </body> diff --git a/demos/autocomplete/multiple-remote.html b/demos/autocomplete/multiple-remote.html new file mode 100644 index 000000000..5e0f4b50b --- /dev/null +++ b/demos/autocomplete/multiple-remote.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <title>jQuery UI Autocomplete multiple demo</title> + <link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" /> + <script type="text/javascript" src="../../jquery-1.4.2.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.core.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.position.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script> + <link type="text/css" href="../demos.css" rel="stylesheet" /> + <script type="text/javascript"> + $(function() { + function split(val) { + return val.split(/,\s*/); + } + function extractLast(term) { + return split(term).pop(); + } + + $("#birds").autocomplete({ + source: function(request, response) { + $.getJSON("search.php", { + term: extractLast(request.term) + }, response); + }, + search: function() { + // custom minLength + var term = extractLast(this.value); + if (term.length < 2) { + return false; + } + }, + focus: function() { + // prevent value inserted on focus + return false; + }, + select: function(event, ui) { + var terms = split( this.value ); + // remove the current input + terms.pop(); + // add the selected item + terms.push( ui.item.value ); + // add placeholder to get the comma-and-space at the end + terms.push(""); + this.value = terms.join(", "); + return false; + } + }); + }); + </script> +</head> +<body> + +<div class="demo"> + +<div class="ui-widget"> + <label for="birds">Birds: </label> + <input id="birds" size="50" /> +</div> + +</div><!-- End demo --> + +<div class="demo-description"> +<p> +Usage: Enter at least two characters to get bird name suggestions. Select a value to continue adding more names. +</p> +<p> +This is an example showing how to use the source-option along with some events to enable autocompleting multiple values into a single field. +</p> +</div><!-- End demo-description --> + +</body> +</html> diff --git a/demos/autocomplete/multiple.html b/demos/autocomplete/multiple.html new file mode 100644 index 000000000..908cfe6ce --- /dev/null +++ b/demos/autocomplete/multiple.html @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <title>jQuery UI Autocomplete multiple demo</title> + <link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" /> + <script type="text/javascript" src="../../jquery-1.4.2.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.core.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.position.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script> + <link type="text/css" href="../demos.css" rel="stylesheet" /> + <script type="text/javascript"> + $(function() { + var availableTags = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl"]; + function split(val) { + return val.split(/,\s*/); + } + function extractLast(term) { + return split(term).pop(); + } + + $("#tags").autocomplete({ + minLength: 0, + source: function(request, response) { + // delegate back to autocomplete, but extract the last term + response($.ui.autocomplete.filter(availableTags, extractLast(request.term))); + }, + focus: function() { + // prevent value inserted on focus + return false; + }, + select: function(event, ui) { + var terms = split( this.value ); + // remove the current input + terms.pop(); + // add the selected item + terms.push( ui.item.value ); + // add placeholder to get the comma-and-space at the end + terms.push(""); + this.value = terms.join(", "); + return false; + } + }); + }); + </script> +</head> +<body> + +<div class="demo"> + +<div class="ui-widget"> + <label for="tags">Tag programming languages: </label> + <input id="tags" size="50" /> +</div> + +</div><!-- End demo --> + +<div class="demo-description"> +<p> +Usage: Type something, eg. "j" to see suggestions for tagging with programming languages. Select a value, then continue typing to add more. +</p> +<p> +This is an example showing how to use the source-option along with some events to enable autocompleting multiple values into a single field. +</p> +</div><!-- End demo-description --> + +</body> +</html> diff --git a/demos/autocomplete/remote-with-cache.html b/demos/autocomplete/remote-with-cache.html index 3688365d4..a00c741e4 100644 --- a/demos/autocomplete/remote-with-cache.html +++ b/demos/autocomplete/remote-with-cache.html @@ -22,12 +22,11 @@ source: function(request, response) { if (cache.term == request.term && cache.content) { response(cache.content); + return; } if (new RegExp(cache.term).test(request.term) && cache.content && cache.content.length < 13) { - var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i"); - response($.grep(cache.content, function(value) { - return matcher.test(value.value) - })); + response($.ui.autocomplete.filter(cache.content, request.term)); + return; } $.ajax({ url: "search.php", diff --git a/demos/autocomplete/remote.html b/demos/autocomplete/remote.html index 3b0d7096d..9414102e6 100644 --- a/demos/autocomplete/remote.html +++ b/demos/autocomplete/remote.html @@ -18,7 +18,6 @@ } $("#birds").autocomplete({ - // TODO doesn't work when loaded from /demos/#autocomplete|remote source: "search.php", minLength: 2, select: function(event, ui) { diff --git a/demos/button/splitbutton.html b/demos/button/splitbutton.html index b42fe520a..7e4d66038 100644 --- a/demos/button/splitbutton.html +++ b/demos/button/splitbutton.html @@ -11,21 +11,23 @@ <link type="text/css" href="../demos.css" rel="stylesheet" /> <script type="text/javascript"> $(function() { - $("#rerun").button().click(function() { - alert("Running the last action"); - }) + $("#rerun") + .button() + .click( function() { + alert( "Running the last action" ); + }) .next() - .button({ - text: false, - icons: { - primary: "ui-icon-triangle-1-s" - } - }) - .click(function() { - alert("Could display a menu to select an action"); - }) + .button( { + text: false, + icons: { + primary: "ui-icon-triangle-1-s" + } + }) + .click( function() { + alert( "Could display a menu to select an action" ); + }) .parent() - .buttonset(); + .buttonset(); }); </script> <style> diff --git a/demos/draggable/visual-feedback.html b/demos/draggable/visual-feedback.html index bb54de4fe..4644472f0 100644 --- a/demos/draggable/visual-feedback.html +++ b/demos/draggable/visual-feedback.html @@ -27,7 +27,7 @@ return $('<div class="ui-widget-header">I\'m a custom helper</div>'); } }); - $("#set div").draggable({ stack: { group: '#set div', min: 1 } }); + $("#set div").draggable({ stack: '#set div' }); }); </script> </head> diff --git a/demos/droppable/index.html b/demos/droppable/index.html index c2e08eef8..e0c4e6ae2 100644 --- a/demos/droppable/index.html +++ b/demos/droppable/index.html @@ -15,6 +15,7 @@ <li><a href="propagation.html">Prevent propagation</a></li> <li><a href="visual-feedback.html">Visual feedback</a></li> <li><a href="revert.html">Revert draggable position</a></li> + <li><a href="shopping-cart.html">Shopping Cart</a></li> <li><a href="photo-manager.html">Simple photo manager</a></li> </ul> </div> diff --git a/demos/droppable/shopping-cart.html b/demos/droppable/shopping-cart.html new file mode 100644 index 000000000..de8ce4fe3 --- /dev/null +++ b/demos/droppable/shopping-cart.html @@ -0,0 +1,101 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <title>jQuery UI Droppable - Shopping Cart Demo</title> + <link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" /> + <script type="text/javascript" src="../../jquery-1.4.2.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.core.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script> + <link type="text/css" href="../demos.css" rel="stylesheet" /> + <style type="text/css"> + h1 { padding: .2em; margin: 0; } + #products { float:left; width: 500px; margin-right: 2em; } + #cart { width: 200px; float: left; } + /* style the list to maximize the droppable hitarea */ + #cart ol { margin: 0; padding: 1em 0 1em 3em; } + </style> + <script type="text/javascript"> + $(function() { + $("#catalog").accordion(); + $("#catalog li").draggable({ + appendTo: "body", + helper: "clone" + }); + $("#cart ol").droppable({ + activeClass: "ui-state-default", + hoverClass: "ui-state-hover", + accept: ":not(.ui-sortable-helper)", + drop: function(event, ui) { + $(this).find(".placeholder").remove(); + $("<li></li>").text(ui.draggable.text()).appendTo(this); + } + }).sortable({ + items: "li:not(.placeholder)", + sort: function() { + // gets added unintentionally by droppable interacting with sortable + // using connectWithSortable fixes this, but doesn't allow you to customize active/hoverClass options + $(this).removeClass("ui-state-default"); + } + }); + + }); + </script> +</head> +<body> +<div class="demo"> + +<div id="products"> + <h1 class="ui-widget-header">Products</h1> + <div id="catalog"> + <h3><a href="#">T-Shirts</a></h3> + <div> + <ul> + <li>Lolcat Shirt</li> + <li>Cheezeburger Shirt</li> + <li>Buckit Shirt</li> + </ul> + </div> + <h3><a href="#">Bags</a></h3> + <div> + <ul> + <li>Zebra Striped</li> + <li>Black Leather</li> + <li>Alligator Leather</li> + </ul> + </div> + <h3><a href="#">Gadgets</a></h3> + <div> + <ul> + <li>iPhone</li> + <li>iPod</li> + <li>iPad</li> + </ul> + </div> + </div> +</div> + +<div id="cart"> + <h1 class="ui-widget-header">Shopping Cart</h1> + <div class="ui-widget-content"> + <ol> + <li class="placeholder">Add your items here</li> + </ol> + </div> +</div> + +</div><!-- End demo --> + +<div class="demo-description"> + +<p>Demonstrate how to use an accordion to structure products into a catalog and make use drag and drop for adding +them to a shopping cart, where they are sortable.</p> + +</div><!-- End demo-description --> +</body> +</html> diff --git a/demos/effect/index.html b/demos/effect/index.html index b914c96c5..cecceb6cd 100644 --- a/demos/effect/index.html +++ b/demos/effect/index.html @@ -11,7 +11,7 @@ <h4>Examples</h4> <ul> <li class="demo-config-on"><a href="default.html">Effect showcase</a></li> - <li class="demo-config-on"><a href="easing.html">Easing showcase</a></li> + <li><a href="easing.html">Easing showcase</a></li> <!-- WIP <li class="demo-config-on"><a href="scale.html">Scale effect</a></li> <li class="demo-config-on"><a href="size.html">Size effect</a></li> diff --git a/demos/tabs/cookie.html b/demos/tabs/cookie.html new file mode 100644 index 000000000..638ee37f2 --- /dev/null +++ b/demos/tabs/cookie.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <title>jQuery UI Tabs - Default functionality</title> + <link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" /> + <script type="text/javascript" src="../../jquery-1.4.2.js"></script> + <script type="text/javascript" src="../../external/jquery.cookie.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.core.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script> + <script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script> + <link type="text/css" href="../demos.css" rel="stylesheet" /> + <script type="text/javascript"> + $(function() { + $("#tabs").tabs({ + cookie: { + // store cookie for a day, without, it would be a session cookie + expires: 1 + } + }); + }); + </script> +</head> +<body> + +<div class="demo"> + +<div id="tabs"> + <ul> + <li><a href="#tabs-1">Nunc tincidunt</a></li> + <li><a href="#tabs-2">Proin dolor</a></li> + <li><a href="#tabs-3">Aenean lacinia</a></li> + </ul> + <div id="tabs-1"> + <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p> + </div> + <div id="tabs-2"> + <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p> + </div> + <div id="tabs-3"> + <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p> + <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p> + </div> +</div> + +</div><!-- End demo --> + +<div class="demo-description"> + +<p>Looks the same as the default demo, but uses cookie to store the selected tab, and restore it when the page (re)loads. + +The cookie is stored for a day, so tabs will be restored even after closing the browser. Use cookie: {} for using cookies with default options.</p> + +</div><!-- End demo-description --> + +</body> +</html> diff --git a/demos/tabs/index.html b/demos/tabs/index.html index 48b3636c3..8fc417a4f 100644 --- a/demos/tabs/index.html +++ b/demos/tabs/index.html @@ -17,6 +17,7 @@ <li><a href="sortable.html">Sortable</a></li> <li><a href="manipulation.html">Simple manipulation</a></li> <li><a href="bottom.html">Tabs below content</a></li> + <li><a href="cookie.html">Cookie persistence</a></li> </ul> </div> |