jQuery live()使用jQuery UI日期选择器失败
好的,我正在尝试将FaceBox()插件与jQuery UI datepicker()一起用于jQuery 我让它在lightbox第一次出现时绑定到lightbox的输入,但之后它就不工作了 我正在做以下工作:jQuery live()使用jQuery UI日期选择器失败,jquery,jquery-ui,focus,Jquery,Jquery Ui,Focus,好的,我正在尝试将FaceBox()插件与jQuery UI datepicker()一起用于jQuery 我让它在lightbox第一次出现时绑定到lightbox的输入,但之后它就不工作了 我正在做以下工作: $(函数(){ $('.jQueryCalendar').live('click',函数(){ $(this.datepicker({showOn:'tweet'}).focus(); }); }); 当lightbox关闭时,我会将其内容追加到页面中(为了不丢失content d
$(函数(){
$('.jQueryCalendar').live('click',函数(){
$(this.datepicker({showOn:'tweet'}).focus();
});
});
当lightbox关闭时,我会将其内容追加到页面中(为了不丢失content div),这似乎会终止live()调用。[注意:原始内容被销毁后,重新追加内容]
编辑
好的,live()事件正在启动(感谢Nick Craver),但是不再显示日期选择器。有人知道为什么吗
编辑#2
好的,使用.html()重新附加会导致事件需要重新绑定,但是要绑定的元素仍然有类hasDatepicker,这会干扰datepicker()的初始化
要修复,只需用户
$(this.removeClass('hasDatepicker').datepicker({shown:'tweet'}).focus();
日期选择器可能在盒子后面
我之前也有同样的问题
把这个放在css文件中,我就成功了
#ui-datepicker-div
{
z-index:9999999;
}
试试这个,看看会发生什么:
$(function() {
$('.jQueryCalendar').live('click', function () {
$(this).datepicker('destroy').datepicker({showOn: 'both'}).focus();
});
});
如果您将jQueryUI1.7.2与jQuery1.4一起使用,一些影响会破坏小部件,使其褪色,等等,可能会导致日期选择器问题。jQueryUI1.8修复了这个问题,目前它处于RC3状态
$(this).removeClass('hasDatepicker') .datepicker({showOn: 'both'}).focus();
解决了我的问题
谢谢
$( "#datepicker" ).live('mousedown',function()
{
$(this).datepicker({
dateFormat: 'dd/mm/yy',
minDate: 0
});
});
试试这个..我也有同样的问题,但问题是,我有很多带有开始和结束日期的“瓷砖”。 我没有得到我需要的结果,因为每个开始日期的id和结束日期都是相同的。还有多个日期字段,我得到的日期选择器返回的值都设置为日期字段的第一个实例 这个代码对我有用:
$('.datepicker').live('mousedown', function(){
$(this).datepicker({
dateFormat: 'mm/dd/y
});
});
[以HTML格式]
显示/开始日期
结束日期
[在JAVASCRIPT中包括]
//在开始和结束字段上设置日期选择器
$('input.dateStart').datepicker({dateFormat:“yy-mm-dd”,changeYear:true})代码>
$('input.dateEnd').datepicker({
dateFormat:“yy-mm-dd”,
changeYear:true,
beforeShow:function(){
var value=$(this).sibbines('.dateStart').val();
$(this).datepicker('option','minDate',value);
}
})代码>
我希望这能帮助其他人解决同样的问题
bo huttinger您可以尝试使用插件
我找到了答案这对我很有效
$.datepicker.setDefaults({ dateFormat: 'yy-mm-dd', ... });
$('input.date').live('focus', function() {
$(this).datepicker().datepicker('show');
true;
});
这对我很有用:
$('.datepicker').live('mousedown', function(){
$(this).datepicker({
dateFormat: 'mm/dd/y
});
});
从1.9开始,.live()
已经从jQuery中删除,应该被.on()
替换。使用新语法,您将获得:
$(document).on('mousedown', '.datepicker', function(){
$(this).datepicker({
dateFormat: 'mm/dd/y
});
});
在那里贴一个警告,我想你会发现它搞乱了日期采集器,而现场直播实际上正在启动。今天点击完全相同的问题-2年后-这对我有效。感谢您回来并抽出时间添加对您有用的内容。您应该将您的解决方案作为答案发布并接受它!不,就像我说的,是第一次工作:我已经处理好了z-index这个为我工作的#ui datepicker div{z-index:999999!重要;}@Ed-在这种情况下,lightbox是否会褪色,或者重新调整大小,关闭动画?是的,它会褪色,但是,这不会破坏任何其他日期选择器(不在lightbox中)我在jQuery1.3上。2@Ed-你能把代码贴在你要附加到页面的地方吗?lightbox应该自己做这件事,可能有什么东西丢失了。@Nick有很多,所以请查看我对@Nick Correct的回答,从而使用live()。事实上,我现在已经修复了它:事实上元素仍然有hasDatepicker作为一个类干扰初始化过程。这对我来说不起作用。我用弗林斯的帖子来克服这个挑战。
$('.datepicker').live('mousedown', function(){
$(this).datepicker({
dateFormat: 'mm/dd/y
});
});
$(document).on('mousedown', '.datepicker', function(){
$(this).datepicker({
dateFormat: 'mm/dd/y
});
});