JQuery UI DatePicker конфликтует с пользовательским событием? - PullRequest
1 голос
/ 31 января 2012

Этот код создает пользовательское событие show & hide.Это от здесь .

// 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 UI.$("input[type=text]").datepicker().Я получил эту ошибку

jquery-ui.js: 7473Uncaught TypeError: Невозможно вызвать метод 'keydown' из неопределенного

Но если я закомментирую "addClass" & "removeClass"вот так

$. каждый ([" show "," hide "," toggleClass " / *," addClass "," removeClass "* / ], function () {

Снова работает. Вот тест http://jsfiddle.net/Lf9Hv/2/

У кого-нибудь есть идеи?

Спасибо.

1 Ответ

1 голос
/ 31 января 2012

Ну, datepicker делает немало манипуляций с классами при настройке DatePicker, и вы, вероятно, не хотите гадить с ним, пока он делает. Возможно, сначала запустите datepicker, а затем настройте прослушиватель событий, как только это будет сделано?

edit: и на второй взгляд, я определенно вижу, по крайней мере, одну вещь, которую вы делаете, это неправильно. Вам нужно добавить кавычки вокруг «текста»

$("input[type='text']").datepicker()

Использование двух разных типов цитат позволит вам их так вкладывать. (Вложение их другим способом также работает.) Опять же, я не могу сказать вам, решит ли это все ваши проблемы, но это точно не повредит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...