Jquery .live可以使用但不能使用.datepicker

Chr*_*ris 7 javascript syntax jquery datepicker

感谢您的回顾,所有真诚有用的答案都被投票赞成.我有一些日期输入字段,当页面加载时,存在一堆动态生成的字段.每次生成新实例时,我都不会在该类上调用.datepicker(),而是使用.live,但它似乎不起作用.知道为什么吗?

$("input[name=myfav]").live("click", function(){
    $(this).datepicker({ 
        /* some options here */ 
    });
});
Run Code Online (Sandbox Code Playgroud)

我应该提一下,例如,自动完成功能完全正常.

$("input[name=mytwo]").live("click", function(){
    $(this).autocomplete("somefile.php");
});
Run Code Online (Sandbox Code Playgroud)

Esp*_*spo 26

这是一篇关于在jQuery中使用.live-event的datepicker的文章:

http://www.vancelucas.com/blog/jquery-ui-datepicker-with-ajax-and-livequery/

问题是Datepicker默认情况下通过绑定到focus()事件来工作,但是从jQuery 1.3.2开始,'live'事件函数无法监视'focus'事件.

这是网站的解决方法::

<script type="text/javascript">
$(function(){
    $('input.calendarSelectDate').live('click', function() {
        $(this).datepicker({showOn:'focus'}).focus();
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

编辑:不再需要此解决方法,因为jQuery 1.4.1+现在支持live()的焦点和模糊事件.(谢谢@Chris S)


fri*_*ngd 7

这就是我最终使用的.这需要的优势live,并focus在新的jQuery

$.datepicker.setDefaults({ dateFormat: 'yy-mm-dd', ... });
$('input.date').live('focus', function() {
    $(this).datepicker().datepicker('show');
    true;
});
Run Code Online (Sandbox Code Playgroud)