Я видел, что этот вопрос задавали несколько раз, но ничто не помогло.
В моем файле cshtml у меня есть следующее:
<div class="col-lg-8">
@Html.Raw(SelectListHelper.CreateDropDownList("ddlStateCode", Application.DataCache.GetStatesAsLookup()))
</div>
<div class="col-lg-8">
<select class="dropdown" id="ddlContactList"></select>
</div>
Выпадающее окно Razor отображает тег select так же, как ddlContactList, кроме идентификатора.
ddlContactList заселяется через AJAX.
ddlStateCode выдает ошибку, когда я нажимаю на нее, и ddlContactList работает нормально.
Мы включаем следующие скрипты:
<script type="text/javascript" src="~/Scripts/jquery-1.10.2.js"></script>
<script type="text/javascript" src="~/Scripts/jquery-ui-1.10.4.min.js"></script>
<script type="text/javascript" src="~/Scripts/bootstrap.js"></script>
<script type="text/javascript" src="~/Scripts/jsrender.min.js"></script>
<script type="text/javascript" src="~/Scripts/globalize.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.easing.min.js"></script>
<script type="text/javascript" src="~/Scripts/ej.widgets.all-latest.min.js"></script>
<script type="text/javascript" src="~/Scripts/App/image-changer.js"></script>
<script type="text/javascript" src="~/Scripts/App/nav.js"></script>
<script type="text/javascript" src="~/Scripts/App/popup.js"></script>
<script type="text/javascript" src="~/Scripts/App/scrollbar.js"></script>
<script type="text/javascript" src="~/Scripts/App/show_hide.js"></script>
<script type="text/javascript" src="~/Scripts/App/jqueryExtensions.js"></script>
<script type="text/javascript" src="~/Scripts/App/helper_functions.js"></script>
<script type="text/javascript" src="~/Scripts/App/ConfirmPopup.js"></script>
<script type="text/javascript" src="~/Scripts/App/global_error_handlers.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.fitvids.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.bxslider.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.easydropdown.js"></script>
Проблема возникает в jQuery.easydropdown.js по методу ниже:
close: function(){
var self = this;
self.$container.removeClass('open'); // error happens here
self.$scrollWrapper.css('height','0px');
self.focusIndex = self.selected.index;
self.query = '';
self.down = false;
},
Я не думаю, что пользовательский файл jQuery и версии файла jQuery должны совпадать, но я не могу найти подходящие версии, чтобы попробовать. Есть идеи?
EasyDropDown разбивается на список избранных, который пуст при загрузке страницы. Удаление функции инкапсуляции в файле javascript и запуск метода создания экземпляра после вызова AJAX.
var self = this;
- здесь действительно пахнет странно, поскольку нет необходимости кэшироватьthis
объект внутриclose()
. Добавьтеconsole.log(self)
прямо вверху этого метода; что это показывает?console.log(self)
и проверьте, содержит лиself
$container
или нет!