JQuery-UI Datepicker()单击事件似乎与自定义事件冲突

时间:2014-06-05 13:19:35

标签: javascript jquery jquery-ui datepicker

我对前端的一些行为感到有点困惑。我使用JQuery UI库中的datepicker()方法,当第一次选择日期时,我希望日历向左滑动以显示表单的其余部分。除非先点击上一个/下个月的元素,否则这样可以正常工作。然后DOM改变(可能不相关),没有其他事情发生。日历保持原始位置,表单永远不会显示。这就像我写的事件监听器被覆盖了。我假设我对使用javascript / jquery的事件处理有一个基本的误解。我是一个后端开发人员,只有最轻微的前端经验,所以如果有人能向我解释我做错了什么,我会非常感激。

这是一个创建相同行为的超简化示例:

HTML:

<div id="calendar"></div>

CSS:

#calendar {
    position:relative;
    left:10em; }

JS:

$(document).ready(function () {  
    $("#calendar").datepicker();  
    $("#calendar tbody td").click(function () {  
        $("#calendar").animate({  
            left: "-30px",  
            easing: 'swing'  
        });  
    });  
});  

这是一个小提琴:http://jsfiddle.net/HM9ea/

1 个答案:

答案 0 :(得分:1)

使用onSelect

尝试此操作
$("#calendar").datepicker({
    onSelect: function () {
        $(this).animate({
            left: "-30px",
            easing: 'swing'
        });
    }
});

Demo


您的代码问题在于您试图在文档就绪状态下为不是presenet的对象设置动画。所以你的事件不会被触发,而是你可以使用select onSelect的内置方法。