Этот код создает пользовательское шоу & скрыть событие. Это от here.jQuery ui datepicker конфликтует с пользовательским событием?
// 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");
});
};
});
Это хорошо работает, пока я не использую datepicker в пользовательском интерфейсе jQuery. $("input[type=text]").datepicker()
. Я получил эту ошибку
jquery-ui.js:7473Uncaught TypeError: Cannot call method 'keydown' of undefined
Но если я закомментировать "addClass" & "removeClass" как этот
$.each(["show", "hide", "toggleClass"/*, "addClass", "removeClass"*/], function() {
Он снова работает. Вот тест http://jsfiddle.net/Lf9Hv/2/
У кого-нибудь есть идеи?
Спасибо.
Я попытался переместить '$ (" input [type = text] "). Datepicker()' this сверху, но я получил новую ошибку 'Uncaught TypeError: не могу вызвать метод 'width' of undefined' – trung