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

Commit c7b275c

Browse files
authored
Merge pull request #83 from dnasir/renderItem-method
Render item method
2 parents 36fc8b2 + 5a99fe1 commit c7b275c

6 files changed

+30
-55
lines changed

dist/jquery.cascadingdropdown.js

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! jquery-cascading-dropdown 1.2.8 | (c) 2019 Dzulqarnain Nasir <[email protected]> | MIT */
1+
/*! jquery-cascading-dropdown 1.2.9 | (c) 2019 Dzulqarnain Nasir <[email protected]> | MIT */
22
(function ($, undefined) {
33
'use strict';
44

@@ -214,27 +214,19 @@
214214

215215
var selected = [];
216216

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

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

dist/jquery.cascadingdropdown.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/jquery.cascadingdropdown.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 9 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "jquery-cascading-dropdown",
3-
"version": "1.2.8",
3+
"version": "1.2.9",
44
"description": "A simple and lighweight jQuery plugin for creating cascading dropdowns.",
55
"main": "dist/jquery.cascadingdropdown.min.js",
66
"scripts": {

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)