将类添加到日期选择器选择中
Add class to datepicker select
我需要在Datepicker的选择中添加一个类(由插件使用)。我已经尝试过beforeShow
,但此时尚未创建选择。
下面是我的代码片段:
jQuery('.date-picker').datepicker( {
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'mm/yy',
yearRange: new Date().getFullYear() + ':' + (6 + new Date().getFullYear()),
onClose: function(dateText, inst) {
var month = jQuery("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = jQuery("#ui-datepicker-div .ui-datepicker-year :selected").val();
jQuery(this).datepicker('setDate', new Date(year, month, 1));
},
beforeShow: function(){
var month =jQuery("#ui-datepicker-div .ui-datepicker-month");
var year = jQuery("#ui-datepicker-div .ui-datepicker-year");
if(!month.hasClass('select-personalizado')){
month.addClass('select-personalizado').addClass('select-dark');
}
if(!year.hasClass('select-personalizado')){
year.addClass('select-personalizado').addClass('select-dark');
}
}
});
.ui-datepicker-current, .ui-datepicker-calendar { display: none; }
.ui-widget-header { background: 0 none !important; border: 0 none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.1/themes/black-tie/jquery-ui.css" type="text/css" media="all" />
<input type="text" class="date-picker"/>
我需要添加的类是select-personalizado
和select-dark
Ok-这是将类名添加到日期选择器选择框的最后(干净)方法
事实上,这很容易:
- 下载的日期选择器(jQueryUI)源代码
- 增加了两个选项:
customClassYear, customClassMonth
- 如果不是false(默认值),它们将被添加到插件生成的html中
演示:**jsFiddle演示**
jQuery UI最新-在github上自定义:**github的源代码完整版**
用法:
//Date picker:
$('.date-picker').datepicker( {
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'mm/yy',
yearRange: new Date().getFullYear() + ':' + (6 + new Date().getFullYear()),
onClose: function(dateText, inst) {
var month = jQuery("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = jQuery("#ui-datepicker-div .ui-datepicker-year :selected").val();
jQuery(this).datepicker('setDate', new Date(year, month, 1));
},
customClassMonth: "select-personalizado select-dark",
customClassYear: "select-personalizado select-dark"
});
备注:
- 你可以自己缩小这个自定义版本
- 没有删除我的其他答案,因为它可能对其他类似的需求有所帮助
- 行编辑:(7988-79909662966396739707)
玩得开心。
问题是,每次显示/隐藏容器时,插件(日期选择器)都会删除并附加选择框。
您需要在容器#ui-datepicker-div
淡入(fadeIn)之前触发您的函数
我的解决方案是使用一个快速插件扩展fadeIn函数,为他添加一个beforeFadeIn / afterFadeIn
事件,并处理你的函数(这将疯狂地添加类)。
Demo:jsFiddle Demo-类具有演示的背景色和边框色。
代码:
//Plugin to extend fadIn and attach before and after events:
jQuery(function($) {
var _oldFadeIn = $.fn.fadeIn;
$.fn.fadeIn = function(speed, oldCallback) {
return $(this).each(function() {
var obj = $(this),
newCallback = function() {
if ($.isFunction(oldCallback))
oldCallback.apply(obj);
obj.trigger('afterFadeIn');
};
obj.trigger('beforeFadeIn');
_oldFadeIn.apply(obj, [speed, newCallback]);
});
}
});
$(function($) {
//Date picker:
$('.date-picker').datepicker( {
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'mm/yy',
yearRange: new Date().getFullYear() + ':' + (6 + new Date().getFullYear()),
onClose: function(dateText, inst) {
var month = jQuery("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = jQuery("#ui-datepicker-div .ui-datepicker-year :selected").val();
jQuery(this).datepicker('setDate', new Date(year, month, 1));
}
});
//Attach the function to before the fadeIn kicks in:
$('#ui-datepicker-div').bind('beforeFadeIn', function(){
var month =jQuery("#ui-datepicker-div .ui-datepicker-month");
var year = jQuery("#ui-datepicker-div .ui-datepicker-year");
if(!month.hasClass('select-personalizado'))
month.addClass('select-personalizado').addClass('select-dark');
if(!year.hasClass('select-personalizado'))
year.addClass('select-personalizado').addClass('select-dark');
});
});
相关文章:
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 如何基于另一个已经存在的选择器选择元素
- 剑道日期选择器选择日期应从年开始
- 引导程序窗体帮助程序-状态选择器-选择类
- jquery日期选择器-选择时激活另一个日期选择器
- 有没有更好的方法来访问用JQuery选择器选择的第一个元素
- 通过使用不同的选择器选择元素,为元素提供多个事件处理程序
- 如何使引导日期选择器选择当分钟视图模式:1时选择当月的最后一天而不是第一天
- 如何使用日期选择器选择两个日期的范围
- 将类添加到日期选择器选择中
- 如何制作HTML5旋转列表/转轮选择器/选择器
- 使用此选择器选择特定的img
- 单击查询选择器选择的所有链接
- Javascript/Jquery -不能让日期选择器+选择验证工作
- 不能使用JQuery/CSS:n -child选择器选择子元素
- jQuery选择器:选择元素,不包含特定元素
- 为日期选择器选择在js中可选择的日期
- 仅为通过元素选择器选择的元素获取指定的属性列表
- 如何在Cytoscape.js中使用:not选择器?(选择没有属性的节点)
- Jquery选择器:选择元素旁边的所有元素