У меня есть всплывающее окно bootstrap 4 со списком внутри, которое происходит из элемента viewcomponent (проект asp net core 3.1). Это всплывающее окно находится внутри панели навигации макета (не уверен, актуально ли это), и после наведения на него должен появиться список. Теперь каждый элемент списка отображается правильно, но после того, как я щелкну любой из элементов списка, я хочу отправить ajax post-запрос, но я не могу заставить свой javascript работать. Я не уверен, в чем проблема. Это потому, что мой скрипт загружается только при наведении курсора на всплывающее окно? Я неправильно использую события? Я перепробовал множество вариантов, чтобы проверить, работает ли JS и похоже, что все не удалось. ViewComponent:
@model mymodel;
<div class='list-group'>
@foreach (var item in Model.Item)
{
<a href='@item.Url' class='btn list-group-item list-group-item-action mb-1'>You have been invited to join event: <b>@item.Name</b></a>
}
@foreach (var item in Model.AnotherItem)
{
<a id='lmao' href='#' onclick='doSomething(@item.Id);' class='list-group-item list-group-item-action mb-1'>You have been invited to join team: <b>@item.Name</b></a>
}
</div>
<script>
$('#lmao').click(function () { MyFunction(); return false; });
function MyFunction() {
alert('hello');
console.log(data);
console.log(this);
}
</script>
_Layout Page с всплывающим окном:
<div class="navbar-collapse">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown">
Settings
</a>
...
<a tabindex="0" class="dropdown-item pop" data-container="body" data-html="true" title="Your invitations" data-toggle="popover" data-placement="left" data-content="@await Component.InvokeAsync("InvitationList")" style="cursor: pointer;">Invitations (number coming from another viewcomponent)</a>
...
</div>
</li>
...
Popover JS в Layout:
<script>
$('.pop').popover({
trigger: 'manual',
html: true
})
.on('mouseenter', function () {
var _this = this;
$(this).popover('show');
$('.popover').on('mouseleave', function () {
$(_this).popover('hide');
});
}).on('mouseleave', function () {
var _this = this;
setTimeout(function () {
if (!$('.popover:hover').length) {
$(_this).popover('hide');
}
}, 300);
});
</script>
Моя всплывающая подсказка работает правильно, я вижу элементы загружается из компонента просмотра, я могу нажать на каждом из них и go, чтобы установить href. Что не работает, так это javascript, исходящее из viewcomponent, или, по крайней мере, я не могу его протестировать. Моя конечная цель - сделать пост-вызов, если будет нажат любой из элементов во всплывающем окне.