Проблемы с 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

Вещи, которые я пытался

  1. Я использую последнюю версию библиотеки Jquery UI с виджетом автозаполнения.
  2. Iv проверил, что мои пути к файлам верны. (они есть).
  3. Используемые оповещения, например alert("$('input#autocomplete').autocomplete")
    • они продолжают возвращаться неопределенными.

Любая помощь приветствуется!

1 ответ

Решение

Сам Sitefinity использует jquery и, вероятно, переопределяет многие базовые классы / методы с одинаковыми сокращенными именами классов ($, Jquery).

Следствием этого является то, что вы не можете разместить свой javascript на своей странице ДО того, как будут вставлены какие-либо элементы / элементы управления sitefinity. У меня была такая же проблема. Я переместил весь свой javascript ПОСЛЕ элемента sitefinity в конец своих страниц, и все снова заработало нормально.

Имейте в виду, что на самом деле происходит в этом случае, что

  1. sitefinity вводит свой собственный jquery, затем
  2. Ваша ссылка на файл 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

Удачи!

Другие вопросы по тегам