jQuery live()使用jQuery UI日期选择器失败

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

好的,我正在尝试将FaceBox()插件与jQuery UI datepicker()一起用于jQuery

我让它在lightbox第一次出现时绑定到lightbox的输入,但之后它就不工作了

我正在做以下工作:

$(函数(){
$('.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
  });
});