Включили ли вы jQueryUI на своей странице? Если предположить, что у вас есть, то проблема заключается в следующем:
Ваш цикл будет производить несколько <ol>
элементов с идентификатором «выбираемый» ... вы не можете иметь несколько элементов с одинаковым идентификатором, это недопустимый HTML, идентификаторы должны (очевидно) быть уникальными, иначе они не являются идентификаторами больше, и код не может знать, на кого вы хотите сослаться, поэтому он всегда выбирает первый, который находит (и считает остальные недействительными, как если бы они не существовали).
Кроме того, выбираемый код jQueryUI хочет работать с одним списком <ol>
, что можно увидеть на демонстрациях в https://jqueryui.com/selectable/.
Вам просто нужно переместить <ol>
за пределы цикла Razor @foreach
, чтобы он добавлялся на страницу только один раз:
<ol id="selectable">
@foreach (var item in towns)
{
<li class="ui-widget-content"><a class="town" data-town="@item"><i class="icon-location3"></i> @item</a></li>
}
</ol>
Кроме того, примечание: вы не должны помещать элементы в список, которые также не находятся внутри элемента списка ... поэтому ваш внешний <ul>
также недействителен - вы должны поместить <ol>
внутри <li>
действительно.