Skip to content
This repository was archived by the owner on Feb 18, 2022. It is now read-only.

Commit c8bc159

Browse files
committed
Merge pull request #43 from Saviio/master
add a classHelper make component support for IE9+ thanks to @Saviio
2 parents b7df903 + 15193e0 commit c8bc159

File tree

1 file changed

+43
-7
lines changed

1 file changed

+43
-7
lines changed

src/js/angular-datepicker.js

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -305,23 +305,59 @@
305305
}
306306
};
307307

308+
$scope.classHelper = {
309+
'add': function add(ele, klass){
310+
if (ele.className.indexOf(klass) > -1){
311+
return;
312+
}
313+
var classes = ele.className.split(' ');
314+
classes.push(klass);
315+
ele.className = classes.join(' ');
316+
},
317+
'remove': function remove(ele, klass){
318+
var i, classes;
319+
if (ele.className.indexOf(klass) === -1){
320+
return;
321+
}
322+
classes = ele.className.split(' ');
323+
for (i = 0;i < classes.length;i += 1){
324+
if (classes[i] === klass){
325+
classes = classes.slice(0, i).concat(classes.slice(i + 1));
326+
break;
327+
}
328+
}
329+
ele.className = classes.join(' ');
330+
}
331+
};
332+
308333
$scope.showCalendar = function manageShowCalendar() {
309334
//lets hide all the latest instances of datepicker
310335
pageDatepickers = $window.document.getElementsByClassName('_720kb-datepicker-calendar');
311336

312337
angular.forEach(pageDatepickers, function forEachDatepickerPages(value, key) {
313-
314-
pageDatepickers[key].classList.remove('_720kb-datepicker-open');
338+
if (pageDatepickers[key].classList) {
339+
pageDatepickers[key].classList.remove('_720kb-datepicker-open');
340+
} else {
341+
$scope.classHelper.remove(pageDatepickers[key], '_720kb-datepicker-open');
342+
}
315343
});
316344

317-
theCalendar.classList.add('_720kb-datepicker-open');
345+
if (theCalendar.classList) {
346+
theCalendar.classList.add('_720kb-datepicker-open');
347+
} else {
348+
$scope.classHelper.add(theCalendar, '_720kb-datepicker-open');
349+
}
318350
};
319351

320352
$scope.hideCalendar = function manageHideCalendar() {
321-
322-
theCalendar.classList.remove('_720kb-datepicker-open');
353+
if (theCalendar.classList){
354+
theCalendar.classList.remove('_720kb-datepicker-open');
355+
} else {
356+
$scope.classHelper.remove(theCalendar, '_720kb-datepicker-open');
357+
}
323358
};
324359

360+
325361
$scope.setDaysInMonth = function setDaysInMonth(month, year) {
326362

327363
var i
@@ -404,12 +440,12 @@
404440
daysToAppendPrepend = 50;
405441
}
406442

407-
for (i = daysToAppendPrepend/* Years */; i > 0; i -= 1) {
443+
for (i = daysToAppendPrepend; i > 0; i -= 1) { /* Years */
408444

409445
theNewYears.push(Number(startingYear) - i);
410446
}
411447

412-
for (i = 0; i < daysToAppendPrepend/* Years */; i += 1) {
448+
for (i = 0; i < daysToAppendPrepend; i += 1) { /* Years */
413449

414450
theNewYears.push(Number(startingYear) + i);
415451
}

0 commit comments

Comments
 (0)