JsTree конфликтует с jquery.validate

У меня есть Jstree, заполняющий список объектов. Когда я нажимаю узел, частичное загружается ajax. Все хорошо работает, пока я не включаю jquery.validate сценарий для проверки моих форм.

<script src="/scripts/jquery.validate.js" type="text/javascript"></script>
<script src="/scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>
<script src="/areas/manager/scripts/jquery.jstree.min.js" type="text/javascript"></script>
<script src="/areas/manager/scripts/jquery.hotkeys.js" type="text/javascript"></script>
<script src="/areas/manager/scripts/admin-panel.js" type="text/javascript"></script>

Как только я включаю этот файл, древовидные узлы не могут быть выбраны. Также возможность перетаскивания не работает. Нет никаких ошибок JavaScript, о которых сообщают в поджигателе. Кто-либо знает, как разрешить такие конфликты?

Спасибо

8
задан madcapnmckay 20 June 2010 в 13:41
поделиться

1 ответ

Я предполагаю, что вы используете версию 1.6 библиотеки проверки, взгляните на источник здесь: http://ajax.microsoft.com/ajax/jQuery. Validate / 1.6 / jQuery.Validate.js

Внизу:

$.extend($.fn, {
    delegate: function(type, delegate, handler) {
        return this.bind(type, function(event) {
            var target = $(event.target);
            if (target.is(delegate)) {
                return handler.apply(target, arguments);
            }
        });
    },
    triggerEvent: function(type, target) {
        return this.triggerHandler(type, [$.event.fix({ type: type, target: target })]);
    }
})

Проблема в том, что 1.6 создал функцию $ (selector) .delegate () выше, то есть ] не ядро ​​jQuery .delegate () , основная проблема заключается в конфликте имен, а аргументы / поведение не совпадают:

  • jQuery.validate: .delegate (type , делегат, обработчик)
  • Ядро jQuery: .delegate (selector, eventType, handler)

За исключением других деталей, таких как контекст, первая проблема - это первый и второй аргументы наоборот.

Включение jQuery.validate 1.6 нарушает работу функции .delegate () , на которую полагается jsTree. Если вы просто обновите плагин проверки до версии 1.7+, эта проблема должна исчезнуть, после этого он вызовет свою функцию validateDelegate .

10
ответ дан 5 December 2019 в 17:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: