Редактировать: Хотя я привел приведенный ниже пример запуска событий после показа модального режима, я только что понял, что вы дублируете элементы в DOM с одинаковыми идентификаторами - это будет означать,Насколько я понимаю, селектор jquery будет возвращать только первый экземпляр <ul id="taggedPersons"></ul>
, поэтому ваш тег будет работать только с первым экземпляром в DOM - ваша дубликат не привязан к передаваемому вами HTMLв, он скопирован под ним.
Вы можете сделать несколько вещей здесь перед вызовом функции tag it;
- Удалить исходные элементы DOM, чтобы не было конфликта
- Исключить оригинал с более конкретным селектором
- Выполнить итерацию по обоим и вызвать тег на обоих, скрывая оригинал.
Я не знаком с тегомЭто! в частности, но мы широко используем модалы BootBox в наших проектах.
Ваши скрипты не "отключены" в моделях Bootbox, они уже запущены.
Рассматривая реализацию, которая вам понадобитсявызывать .tagit()
после вызова bootbox для загрузки при создании новых элементов DOM после вызова функции .tagit()
.
Однако, если вы используете частичные представления и загружаете содержимое HTML и связанные с нимJS в модал с помощью вызова ajax, сработает функция $(document).ready()
.
Это немного отличается от моего обычного использования частичных представлений для такого рода вещей, но должно быть достаточно.
Весь этот фрагмент должен находиться внутри события клика.
var bootboxHtml = $('#itemNotesDiv').html()
var x = bootbox.confirm({
message: bootboxHtml,
callback: function (result) {
// closure callback
}
});
x.on("shown.bs.modal", function () {
alert("call your function here...");
$("#taggedPersons").tagit({
availableTags: @Html.Raw(Json.Encode(@ViewBag.Users)),
allowDuplicates: false,
allowSpaces: true,
});
});