new version 1.0.7

1) Add destroy method
2) $('#datetimepicker6').datetimepicker('destroy');
also fixed bug with resize window
3) fixed bug when datetimepicker overflow window
This commit is contained in:
Valeriy 2013-11-19 15:20:05 +06:00
parent 641110cde0
commit efec312e79
5 changed files with 58 additions and 14 deletions

View File

@ -11,7 +11,7 @@
"timepicker", "timepicker",
"datetimepicker" "datetimepicker"
], ],
"version": "1.0.6", "version": "1.0.8",
"author": { "author": {
"name": "Chupurnov Valeriy", "name": "Chupurnov Valeriy",
"url": "http://xdsoft.net/contacts.html" "url": "http://xdsoft.net/contacts.html"

View File

@ -13,6 +13,8 @@
<input type="text" id="datetimepicker4"/><input id="open" type="button" value="open"/><input id="close" type="button" value="close"/> <input type="text" id="datetimepicker4"/><input id="open" type="button" value="open"/><input id="close" type="button" value="close"/>
<h3>TimePicker allows time</h3> <h3>TimePicker allows time</h3>
<input type="text" id="datetimepicker5"/><br><br> <input type="text" id="datetimepicker5"/><br><br>
<h3>Destroy DateTimePicker</h3>
<input type="text" id="datetimepicker6"/><input id="destroy" type="button" value="destroy"/>
</body> </body>
<script src="jquery.js"></script> <script src="jquery.js"></script>
<script src="jquery.datetimepicker.js"></script> <script src="jquery.datetimepicker.js"></script>
@ -43,5 +45,15 @@ $('#datetimepicker5').datetimepicker({
datepicker:false, datepicker:false,
allowTimes:['12:00','13:00','15:00','17:00','17:05','17:20','19:00','20:00'], allowTimes:['12:00','13:00','15:00','17:00','17:05','17:20','19:00','20:00'],
}); });
$('#datetimepicker6').datetimepicker();
$('#destroy').click(function(){
if( $('#datetimepicker6').data('xdsoft_datetimepicker') ){
$('#datetimepicker6').datetimepicker('destroy');
this.value = 'create';
}else{
$('#datetimepicker6').datetimepicker();
this.value = 'destroy';
}
});
</script> </script>
</html> </html>

View File

@ -1,5 +1,6 @@
/** /**
* @preserve jQuery DateTimePicker plugin v1.0.6 * @preserve jQuery DateTimePicker plugin v1.0.7
* @homepage http://xdsoft.net/jqplugins/datetimepicker/
* (c) 2013, Chupurnov Valeriy. * (c) 2013, Chupurnov Valeriy.
*/ */
(function( $ ){ (function( $ ){
@ -59,7 +60,7 @@
onSelectDate:function(){}, onSelectDate:function(){},
onSelectTime:function(){}, onSelectTime:function(){},
onChangeMonth:function(){}, onChangeMonth:function(){},
onChangeTime:function(){}, onChangeDateTime:function(){},
onShow:function(){}, onShow:function(){},
onClose:function(){}, onClose:function(){},
withoutCopyright:true, withoutCopyright:true,
@ -276,7 +277,7 @@
timebox.css('marginTop','-'+(top-options.timeHeightInTimePicker)+'px') timebox.css('marginTop','-'+(top-options.timeHeightInTimePicker)+'px')
} }
datetimepicker.trigger('scroll.timebox',[Math.abs(parseInt(timebox.css('marginTop')))]); datetimepicker.trigger('scroll.timebox',[Math.abs(parseInt(timebox.css('marginTop')))]);
options.onChangeTime&&options.onChangeTime.call&&options.onChangeTime.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input')); //options.onChangeDateTime&&options.onChangeDateTime.call&&options.onChangeDateTime.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input'));
period= ( period>10 )?10:period-10; period= ( period>10 )?10:period-10;
!stop&&(timer = setTimeout(arguments.callee,v?v:period)); !stop&&(timer = setTimeout(arguments.callee,v?v:period));
})(500); })(500);
@ -379,6 +380,7 @@
datetimepicker.close(); datetimepicker.close();
options.onSelectDate&&options.onSelectDate.call&&options.onSelectDate.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input')); options.onSelectDate&&options.onSelectDate.call&&options.onSelectDate.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input'));
datetimepicker.trigger('change.xdsoft'); datetimepicker.trigger('change.xdsoft');
datetimepicker.trigger('changedatetime.xdsoft');
}); });
timebox.on( 'mousedown','div',function(){ timebox.on( 'mousedown','div',function(){
if($(this).hasClass('xdsoft_disabled')) if($(this).hasClass('xdsoft_disabled'))
@ -391,6 +393,7 @@
!options.inline&&datetimepicker.close(); !options.inline&&datetimepicker.close();
options.onSelectTime&&options.onSelectTime.call&&options.onSelectTime.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input')); options.onSelectTime&&options.onSelectTime.call&&options.onSelectTime.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input'));
datetimepicker.trigger('change.xdsoft'); datetimepicker.trigger('change.xdsoft');
datetimepicker.trigger('changedatetime.xdsoft');
}); });
datetimepicker.mousewheel&&datepicker.mousewheel(function(event, delta, deltaX, deltaY) { datetimepicker.mousewheel&&datepicker.mousewheel(function(event, delta, deltaX, deltaY) {
if( !options.scrollMonth ) if( !options.scrollMonth )
@ -416,9 +419,11 @@
fl = false; fl = false;
} }
datetimepicker.trigger('scroll.timebox',[Math.abs(parseInt(timebox.css('marginTop')))]); datetimepicker.trigger('scroll.timebox',[Math.abs(parseInt(timebox.css('marginTop')))]);
options.onChangeTime&&options.onChangeTime.call&&options.onChangeTime.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input'));
return fl; return fl;
}); });
datetimepicker.on('changedatetime.xdsoft',function(){
options.onChangeDateTime&&options.onChangeDateTime.call&&options.onChangeDateTime.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input'));
});
var current_time_index = 0; var current_time_index = 0;
input.mousewheel&&input.mousewheel(function( event, delta, deltaX, deltaY ){ input.mousewheel&&input.mousewheel(function( event, delta, deltaX, deltaY ){
if( !options.scrollInput ) if( !options.scrollInput )
@ -432,6 +437,7 @@
}else if( options.datepicker && !options.timepicker ){ }else if( options.datepicker && !options.timepicker ){
datepicker.trigger( event, [delta, deltaX, deltaY]); datepicker.trigger( event, [delta, deltaX, deltaY]);
input.val&&input.val( datetimepicker.data('xdsoft_datetime').str() ); input.val&&input.val( datetimepicker.data('xdsoft_datetime').str() );
datetimepicker.trigger('changedatetime.xdsoft');
return false; return false;
} }
}); });
@ -439,13 +445,21 @@
var onShow = true; var onShow = true;
options.onShow&&options.onShow.call&&(onShow=options.onShow.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input'))); options.onShow&&options.onShow.call&&(onShow=options.onShow.call(datetimepicker,datetimepicker.data('xdsoft_datetime').currentTime,datetimepicker.data('input')));
if( onShow!==false ){ if( onShow!==false ){
var offset = datetimepicker.data('input').offset(); var setPos = function(){
datetimepicker.css({ var offset = datetimepicker.data('input').offset(), top = offset.top+datetimepicker.data('input')[0].offsetHeight;
left:offset.left, if( top+datetimepicker[0].offsetHeight>$('body').height() )
top:offset.top+datetimepicker.data('input')[0].offsetHeight, top = offset.top-datetimepicker[0].offsetHeight;
}).show(); datetimepicker.css({
left:offset.left,
top:top,
});
};
datetimepicker.show();
setPos();
$(window).on('resize.xdsoft',setPos);
if( options.closeOnWithoutClick ){ if( options.closeOnWithoutClick ){
$(window).on('mousedown keydown',function(){ $(window).on('mousedown.xdsoft keydown.xdsoft',function(){
datetimepicker.close(); datetimepicker.close();
$(this).off('mousedown',arguments.callee); $(this).off('mousedown',arguments.callee);
}); });
@ -467,7 +481,7 @@
datetimepicker.setOptions(options); datetimepicker.setOptions(options);
_xdsoft_datetime.setCurrentTime( options.value?options.value:(input&&input.val&&input.val())?input.val():new Date ); _xdsoft_datetime.setCurrentTime( options.value?options.value:(input&&input.val&&input.val())?input.val():new Date );
input.data( 'xdsoft_datetimepicker',datetimepicker ) input.data( 'xdsoft_datetimepicker',datetimepicker )
.on('enter keyup mousedown open.xdsoft',function(event){ .on('enter.xdsoft keyup.xdsoft mousedown.xdsoft open.xdsoft',function(event){
if( input.is(':disabled')||input.is(':hidden')||!input.is(':visible') ) if( input.is(':disabled')||input.is(':hidden')||!input.is(':visible') )
return; return;
clearTimeout(timer); clearTimeout(timer);
@ -481,6 +495,21 @@
}); });
};
var destroyDateTimePicker = function(input){
var datetimepicker = input.data('xdsoft_datetimepicker');
if( datetimepicker ){
var _xdsoft_datetime = datetimepicker.data('xdsoft_datetime');
delete _xdsoft_datetime;
datetimepicker.remove();
delete datetimepicker;
input.data( 'xdsoft_datetimepicker',null );
input.off( 'enter.xdsoft keyup.xdsoft mousedown.xdsoft open.xdsoft' );
$(window).off('resize.xdsoft');
$(window).off('mousedown.xdsoft keydown.xdsoft');
input.unmousewheel&&input.unmousewheel();
delete options;
}
}; };
return this.each(function(){ return this.each(function(){
var datetimepicker; var datetimepicker;
@ -494,13 +523,16 @@
case 'hide': case 'hide':
datetimepicker.close(); datetimepicker.close();
break; break;
case 'destroy':
destroyDateTimePicker($(this));
break;
} }
}else{ }else{
$(this).data('xdsoft_datetimepicker').setOptions(options); $(this).data('xdsoft_datetimepicker').setOptions(options);
} }
return 0; return 0;
} }else
createDateTimePicker($(this)); ($.type(opt) !== 'string')&&createDateTimePicker($(this));
}); });
}; };
})( jQuery ); })( jQuery );

BIN
screen/3.1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB