Проблемы с Jquery UI и Sitefinity 3.7
Я строю автозаполнение поиска, используя Jquery UI. Все отлично работало, когда я строил поиск в минимальном документе, где не было ничего, кроме ввода. например:
<input id="autocomplete" />
и Jquery
<script>
$( "input#autocomplete" ).autocomplete({
source: ['johannesburg z', 'johannesburg x', 'johannesburg v','johannesburg b','johannesburg a','johannesburg q', 'johannesburg u', 'johannesburg y', 'johannesburg o', 'johannesburg p']
});
</script>
Однако, когда я размещаю свой код на странице Sitefinity 3.7, я получаю сообщение об ошибке, сообщающее, что "$("input#autocomplete"). Autocomplete" не является функцией.
Эта ошибка возникает только однажды в sitefinity
Вещи, которые я пытался
- Я использую последнюю версию библиотеки Jquery UI с виджетом автозаполнения.
- Iv проверил, что мои пути к файлам верны. (они есть).
- Используемые оповещения, например
alert("$('input#autocomplete').autocomplete")
- они продолжают возвращаться неопределенными.
Любая помощь приветствуется!
1 ответ
Сам Sitefinity использует jquery и, вероятно, переопределяет многие базовые классы / методы с одинаковыми сокращенными именами классов ($, Jquery).
Следствием этого является то, что вы не можете разместить свой javascript на своей странице ДО того, как будут вставлены какие-либо элементы / элементы управления sitefinity. У меня была такая же проблема. Я переместил весь свой javascript ПОСЛЕ элемента sitefinity в конец своих страниц, и все снова заработало нормально.
Имейте в виду, что на самом деле происходит в этом случае, что
- sitefinity вводит свой собственный jquery, затем
- Ваша ссылка на файл jquery.min.js перекрывает sitefinity.
Поэтому возможно, что это может нарушить некоторые функции на основе jquery для sitefinity, хотя у меня не было проблем за последние 2 месяца.
Вы также можете попробовать использовать встроенную в sitefinity версию jQuery (что Telerik рекомендует по ссылке на форуме ниже, хотя мне не очень повезло с этой техникой):
<% @ Register Assembly = "Telerik.Sitefinity" Namespace = "Telerik.Sitefinity.Web.UI" TagPrefix = "sf"%>
Вот ссылка на недавнее сообщение на форуме Sitefinity, касающееся точно такой же проблемы: http://www.sitefinity.com/devnet/forums/sitefinity-4-x/general-discussions/jquery-popup-not-working-in-telerik-webapplication.aspx
Удачи!