У меня есть 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, о которых сообщают в поджигателе. Кто-либо знает, как разрешить такие конфликты?
Спасибо
Я предполагаю, что вы используете версию 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 ()
, основная проблема заключается в конфликте имен, а аргументы / поведение не совпадают:
.delegate (type , делегат, обработчик)
.delegate (selector, eventType, handler)
За исключением других деталей, таких как контекст, первая проблема - это первый и второй аргументы наоборот.
Включение jQuery.validate 1.6 нарушает работу функции .delegate ()
, на которую полагается jsTree. Если вы просто обновите плагин проверки до версии 1.7+, эта проблема должна исчезнуть, после этого он вызовет свою функцию validateDelegate
.