(Я проверил другие решения, которые я нашел для разных вопросов, и они мне не помогли.)
Я пытаюсь использовать Selectize.js в своем пользовательском интерфейсе и продолжаю получать эту ошибку: $(…).selectize не является функцией.
Я кодирую в VS, используя ядро asp.net с бритвенными страницами, поэтому мой html представляет собой комбинацию html и C#. Я также использую типичную структуру стиля MVVM/MVC.
HTML
<!--JQuery version 3.5.1-->
<script type = "text/javascript" src = "~/lib/jquery/dist/jquery.js"></script>
<script type = "text/javascript" src = "~/lib/selectize/dist/js/standalone/selectize.js"></script>
<link rel = "stylesheet" href = "~/lib/selectize/dist/css/selectize.bootstrap4.css" />
@{
var groups = ViewData["Groups"] as ArrayList;
}
<div class = "group-select-container" id = "group-select-container" hidden>
<label for = "group-select">View data from: </label>
@{ if (groups.Count > 0)
{
<select name = "group-select" id = "group-select" placeholder = "Select a group...">
@{
foreach (var group in groups)
{
<option value = "@group" id = "@group">@group</option>
}
}
</select>
}
}
</div>
</div>
JS
$(document).ready(function () {
$('#group-select').selectize({
sortField: {
field: 'text',
direction: 'asc'
},
});
});
У меня есть все микро-плагины, так как я использую автономный файл js.
У меня есть моя функция, обернутая в другую функцию, которую, как я читал, я должен делать.
Я потерялся, чтобы определить причину моей ошибки. Если кто-нибудь знает, пожалуйста, дайте мне знать.
Спасибо!
Я только что создал новый проект, загрузил свои сценарии в папку lib в wwwroot, настроил свой html (хотя и жестко запрограммированные параметры) и js, и это не сработало.

Я могу ошибаться, но что, если
<select name = "group-select" id = "group-select" placeholder = "Select a group...">
не был инициализирован, когда вы пытались использовать селектор jQuery, возможно, потому, что groups.Count не был больше 0 (я предполагаю, что это то, что делает @{ if (groups.Count > 0)?
Попробуйте вывести элемент, чтобы проверить, является ли он нулевым, перед вызовом $(...).selectize и посмотрите, поможет ли это.
Я пробовал с жестко заданными параметрами, после чего ничего динамического не происходило. Еще ничего.
По какой-то причине я обнаружил, что в ядре asp.net файл layout.cshtml по умолчанию включает JQuery внизу страницы, переопределяя мой тег script в верхней части страницы, ссылающийся на мой JS. Удалил это и заработало.
Сделайте минимальный воспроизводимый пример с RENDERED HTML - но сначала посмотрите на вкладку сети, чтобы увидеть, действительно ли он найден