jQuery ui datepicker与自定义事件冲突?

时间:2012-01-30 22:42:03

标签: jquery jquery-ui datepicker

此代码会创建一个自定义节目&隐藏事件。它来自here

// show & hide events
$.each(["show", "hide", "toggleClass", "addClass", "removeClass"], function() {
    var oldFn = $.fn[this];
    $.fn[this] = function() {
        var hidden = this.find(":hidden").add(this.filter(":hidden"));
        var visible = this.find(":visible").add(this.filter(":visible"));
        var result = oldFn.apply(this, arguments);
        hidden.filter(":visible").each(function() {
            $(this).triggerHandler("show");
        });
        visible.filter(":hidden").each(function() {
            $(this).triggerHandler("hide");
        });
    };
});

直到我在jQuery UI中使用datepicker才能正常工作。 $("input[type=text]").datepicker()。我收到了这个错误

  

jquery-ui.js:7473未捕获TypeError:无法调用未定义的方法'keydown'

但如果我评论出“addClass”&像这样的“removeClass”

  

$。each([“show”,“hide”,“toggleClass” / *,“addClass”,“removeClass”* / ],function() {

再次有效。这是测试http://jsfiddle.net/Lf9Hv/2/

有人有任何想法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

嗯,在设置日期选择器的同时,datepicker会进行相当多的类操作,而你可能不希望在它的情况下使用它。也许首先运行datepicker,然后在完成后设置事件监听器?

编辑:乍一看,我绝对可以看到至少有一件事你做错了。您需要在“文本”

周围添加引号
$("input[type='text']").datepicker()

使用两种不同的引号可以让你像这样嵌套它们。 (以另一种方式嵌套它们也有效。)同样,我不能告诉你这是否会解决你所有的问题,但它肯定不会受到伤害。