此代码会创建一个自定义节目&隐藏事件。它来自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/
有人有任何想法吗?
感谢。
答案 0 :(得分:1)
嗯,在设置日期选择器的同时,datepicker会进行相当多的类操作,而你可能不希望在它的情况下使用它。也许首先运行datepicker,然后在完成后设置事件监听器?
编辑:乍一看,我绝对可以看到至少有一件事你做错了。您需要在“文本”
周围添加引号$("input[type='text']").datepicker()
使用两种不同的引号可以让你像这样嵌套它们。 (以另一种方式嵌套它们也有效。)同样,我不能告诉你这是否会解决你所有的问题,但它肯定不会受到伤害。