aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCa-Phun Ung <pazu2k@gmail.com>2008-09-09 08:23:29 +0000
committerCa-Phun Ung <pazu2k@gmail.com>2008-09-09 08:23:29 +0000
commitaccc76bc64e8844153954868258b9dd59b9ba294 (patch)
tree43e515107bfdd95acac4474ab92b207a4cf173f2
parent48cce41f39cc040dbe0d20a34b32d688cd31099e (diff)
downloadjquery-ui-accc76bc64e8844153954868258b9dd59b9ba294.tar.gz
jquery-ui-accc76bc64e8844153954868258b9dd59b9ba294.zip
Spinner: added an init callback which exposes the addItem method for dynamic population of spinner via an external objects.
-rw-r--r--tests/visual/spinner.html37
-rw-r--r--ui/ui.spinner.js22
2 files changed, 56 insertions, 3 deletions
diff --git a/tests/visual/spinner.html b/tests/visual/spinner.html
index 9a1478ea5..f166810c3 100644
--- a/tests/visual/spinner.html
+++ b/tests/visual/spinner.html
@@ -10,12 +10,34 @@
<script type="text/javascript">
$(function(){
+ var itemList = [
+ {url: "http://ejohn.org", title: "John Resig"},
+ {url: "http://bassistance.de/", title: "J&ouml;rn Zaefferer"},
+ {url: "http://snook.ca/jonathan/", title: "Jonathan Snook"},
+ {url: "http://rdworth.org/", title: "Richard Worth"},
+ {url: "http://www.paulbakaus.com/", title: "Paul Bakaus"},
+ {url: "http://www.yehudakatz.com/", title: "Yehuda Katz"},
+ {url: "http://www.azarask.in/", title: "Aza Raskin"},
+ {url: "http://www.karlswedberg.com/", title: "Karl Swedberg"},
+ {url: "http://scottjehl.com/", title: "Scott Jehl"},
+ {url: "http://jdsharp.us/", title: "Jonathan Sharp"},
+ {url: "http://www.kevinhoyt.org/", title: "Kevin Hoyt"},
+ {url: "http://www.codylindley.com/", title: "Cody Lindley"},
+ {url: "http://malsup.com/jquery/", title: "Mike Alsup"}
+ ];
var opts = {
's1': {},
's2': {stepping: 0.25},
's3': {currency: '$'},
- 's4': {}
+ 's4': {},
+ 's5': {
+ init: function(ui) {
+ for (var i=0; i<itemList.length; i++) {
+ ui.add(itemList[i].title +' <a href="'+ itemList[i].url +'" target="_blank">&raquo;</a>');
+ }
+ }
+ }
};
for (var n in opts)
@@ -181,5 +203,18 @@ label {
<hr />
+<p><label for="s5">Presenters: </label>
+<div id="s5"></div>
+
+<p>
+<button id="s5-disable">disable</button>
+<button id="s5-enable">enable</button>
+<button id="s5-destroy">destroy</button>
+<button id="s5-create">create</button>
+</p>
+
+<hr />
+
+
</body>
</html> \ No newline at end of file
diff --git a/ui/ui.spinner.js b/ui/ui.spinner.js
index 1dc39206e..f325f23da 100644
--- a/ui/ui.spinner.js
+++ b/ui/ui.spinner.js
@@ -17,6 +17,11 @@ $.widget('ui.spinner', {
// terminate initialization if spinner already applied to current element
if($.data(this.element[0], 'spinner')) return;
+ // check for onInit callback
+ if (this.options.init) {
+ this.options.init(this.ui(null));
+ }
+
// check for decimals in steppinng and set _decimals as internal (needs cleaning up)
this._decimals = 0;
if (this.options.stepping.toString().indexOf('.') != -1) {
@@ -113,6 +118,7 @@ $.widget('ui.spinner', {
})
.end();
+
// DataList: Set contraints for object length and step size.
// Manipulate height of spinner.
this._items = this.element.children().length;
@@ -150,7 +156,8 @@ $.widget('ui.spinner', {
});
}
},
-
+
+
_constrain: function() {
if(this.options.min != undefined && this._getValue() < this.options.min) this._setValue(this.options.min);
if(this.options.max != undefined && this._getValue() > this.options.max) this._setValue(this.options.max);
@@ -229,6 +236,15 @@ $.widget('ui.spinner', {
});
}
},
+ _addItem: function(html) {
+ if (!this.element.is('input')) {
+ var wrapper = 'div';
+ if (this.element.is('ol') || this.element.is('ul')) {
+ wrapper = 'li';
+ }
+ this.element.append('<'+ wrapper +' class="ui-spinner-dyn">'+ html + '</'+ wrapper +'>');
+ }
+ },
plugins: {},
@@ -236,7 +252,8 @@ $.widget('ui.spinner', {
return {
options: this.options,
element: this.element,
- value: this._getValue()
+ value: this._getValue(),
+ add: this._addItem
};
},
_propagate: function(n,e) {
@@ -259,6 +276,7 @@ $.widget('ui.spinner', {
.end()
.children()
.removeClass('ui-spinner-listitem')
+ .remove('.ui-spinner-dyn')
.end()
.parent()
.removeClass('ui-spinner ui-spinner-disabled')