Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Commit 6a5b957

Browse files
committed
Refactored getOption method as _renderItem
to allow for external customization.
1 parent 36fc8b2 commit 6a5b957

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

src/jquery.cascadingdropdown.js

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -213,27 +213,19 @@
213213

214214
var selected = [];
215215

216-
// Add all items as dropdown item
217-
var getOption = function(item) {
218-
var selectedAttr = '';
219-
if(item.selected) {
220-
selected.push(item.value.toString());
221-
}
222-
223-
return '<option value="' + item.value + '"' + selectedAttr + '>' + item.label + '</option>';
224-
};
225-
226216
if ($.isArray(items)) {
227217
$.each(items, function(index, item) {
228-
self.el.append(getOption(item));
218+
self.el.append(self._renderItem(item));
219+
if (item.selected) selected.push(item.value.toString());
229220
});
230221
} else {
231222
$.each(items, function(key, value) {
232223
var itemData = [];
233224
itemData.push('<optgroup label="' + key + '">');
234225
for (var i = 0; i < value.length; i++) {
235226
var item = value[i];
236-
itemData.push(getOption(item));
227+
itemData.push(self._renderItem(item));
228+
if (item.selected) selected.push(item.value.toString());
237229
}
238230
itemData.push('</optgroup>');
239231
self.el.append(itemData.join(''));
@@ -249,6 +241,10 @@
249241
self._triggerReady();
250242
},
251243

244+
_renderItem: function(item) {
245+
return '<option value="' + item.value + '"' + (item.selected ? ' selected' : '') + '>' + item.label + '</option>';
246+
},
247+
252248
// Trigger the ready event when instance is initialised for the first time
253249
_triggerReady: function() {
254250
if(this.initialised) return;

0 commit comments

Comments
 (0)