Skip to content

Commit f74a4b3

Browse files
committed
v0.1 finish.
1 parent 7c7e53a commit f74a4b3

File tree

3 files changed

+61
-8
lines changed

3 files changed

+61
-8
lines changed

README.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,17 @@
11
# DatePicker
2-
A date component with single selected, No Jquery
2+
> A date component with single selected, No Jquery
3+
4+
## Params
5+
6+
- el: Calendar container | Element
7+
- defaultDate: default selected date | String | '2017-04-15'
8+
- selectInterval: select abled range | Array | [2000, 2020]
9+
- showFn: after show callback | Function
10+
- hideFn: after hide callback | Function
11+
- afterSelectFn: rewrite dateString to element | Function
12+
13+
## Methods
14+
15+
- show: Function
16+
- hide: Function
17+

calendar.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ var DatePicker;
1313
this.target = config.el;
1414
this.defaultDate = config.default || 'today';
1515
this.selectInterval = config.interval || [1970, 2030];
16+
17+
this.showFn = config.showFn || function () {
18+
};
19+
this.hideFn = config.hideFn || function () {
20+
};
21+
this.afterSelectFn = config.afterSelectFn || function () {
22+
};
1623
// 当前日历数据
1724
this.nonceYear = 0;
1825
this.nonceMonth = 0;
@@ -72,10 +79,24 @@ var DatePicker;
7279
Calendar.prototype = {
7380
constructor: Calendar,
7481

82+
show: function () {
83+
this.target.style.display = 'inline-block';
84+
this.showFn();
85+
},
86+
87+
hide: function () {
88+
this.target.style.display = 'none';
89+
this.hideFn();
90+
},
91+
92+
get: function () {
93+
return this.selectedYear + '-' + (this.selectedMonth + 1) + '-' + this.nonceDay;
94+
},
7595
/**
7696
* 初始化
7797
*/
7898
init: function () {
99+
this.hide();
79100
// compute select year
80101
var yearOpts = this._productOptions(this.selectInterval, '年');
81102
var dateOpts = this._productOptions([1, 12], '月');
@@ -346,6 +367,10 @@ var DatePicker;
346367
self.selectedYear = self.nonceYear;
347368

348369
self._setDateList();
370+
371+
self.afterSelectFn(self.get());
372+
373+
self.hide();
349374
})
350375
});
351376

@@ -370,6 +395,7 @@ var DatePicker;
370395
self._setDateList();
371396

372397
});
398+
373399
}
374400
}
375401

index.html

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,25 @@
66
<link rel="stylesheet" href="calendar.css">
77
</head>
88
<body>
9-
<div id="calendar"></div>
9+
<label>
10+
Please select the datetime when you on vacation.
11+
<input type="text" id="datePicker">
12+
</label>
13+
<span id="calendar"></span>
1014

11-
<script src="calendar.js"></script>
12-
<script>
13-
new DatePicker({
14-
el: document.querySelector('#calendar')
15-
})
16-
</script>
15+
<script src="calendar.js"></script>
16+
<script>
17+
var dateComponent = new DatePicker({
18+
el: document.querySelector('#calendar'),
19+
afterSelectFn: function (curr) {
20+
dateInput.value = curr;
21+
}
22+
})
23+
, dateInput = document.querySelector('#datePicker');
24+
25+
dateInput.onfocus = function () {
26+
dateComponent.show();
27+
};
28+
</script>
1729
</body>
1830
</html>

0 commit comments

Comments
 (0)