File tree Expand file tree Collapse file tree 3 files changed +61
-8
lines changed Expand file tree Collapse file tree 3 files changed +61
-8
lines changed Original file line number Diff line number Diff line change 1
1
# 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
+
Original file line number Diff line number Diff line change @@ -13,6 +13,13 @@ var DatePicker;
13
13
this . target = config . el ;
14
14
this . defaultDate = config . default || 'today' ;
15
15
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
+ } ;
16
23
// 当前日历数据
17
24
this . nonceYear = 0 ;
18
25
this . nonceMonth = 0 ;
@@ -72,10 +79,24 @@ var DatePicker;
72
79
Calendar . prototype = {
73
80
constructor : Calendar ,
74
81
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
+ } ,
75
95
/**
76
96
* 初始化
77
97
*/
78
98
init : function ( ) {
99
+ this . hide ( ) ;
79
100
// compute select year
80
101
var yearOpts = this . _productOptions ( this . selectInterval , '年' ) ;
81
102
var dateOpts = this . _productOptions ( [ 1 , 12 ] , '月' ) ;
@@ -346,6 +367,10 @@ var DatePicker;
346
367
self . selectedYear = self . nonceYear ;
347
368
348
369
self . _setDateList ( ) ;
370
+
371
+ self . afterSelectFn ( self . get ( ) ) ;
372
+
373
+ self . hide ( ) ;
349
374
} )
350
375
} ) ;
351
376
@@ -370,6 +395,7 @@ var DatePicker;
370
395
self . _setDateList ( ) ;
371
396
372
397
} ) ;
398
+
373
399
}
374
400
}
375
401
Original file line number Diff line number Diff line change 6
6
< link rel ="stylesheet " href ="calendar.css ">
7
7
</ head >
8
8
< 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 >
10
14
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 >
17
29
</ body >
18
30
</ html >
You can’t perform that action at this time.
0 commit comments