const originalElement = document.getElementById('tom-select');
new TomSelect( originalElement , {
onInitialize: function() {
// Копируем все атрибуты "data" оригинального select в созданный блок, на который будет вешаться popover
const attrs = originalElement.attributes;
for (let i = 0; i < attrs.length; i++) {
const attrName = attrs[i].name;
const attrValue = attrs[i].value;
if ( attrName.startsWith('data-') ) {
this.wrapper.setAttribute(attrName, attrValue);
}
}
// Удаляем атрибут у настоящего select, чтобы на него не вешался лишний обработчик popover
originalElement.removeAttribute('data-bs-toggle');
}
});
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]');
const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl));
success: function(response) {
if (response.indexOf('alert-danger') === -1) {
location.reload();
} else {
//Проваливаетесь сюда
$('#loginModal .modal-body').html(response);
//в response у Вас что? Форма входа с выведенной ошибкой??
//А где обработчик события sabmit "уже новой" формы? Вот и получается что пост выполняется по указанному пути.
}
},
content_block.querySelectorAll('script').forEach(function(content_script){
let scriptElement = document.createElement('script');
scriptElement.textContent = content_script.textContent;
content_script.parentNode.replaceChild(scriptElement, content_script);
});
<div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
div{
width:100%;
}
ul{
padding:0;
margin:0;
width:100%;
text-align:right;
}
li{
width:50px;
height:50px;
margin:20px 5px;
padding:5px;
text-align:center;
list-style:none;
display:inline-block;
font-size:25px;
line-height:50px;
font-weight:500;
background:#fc9090;
color:#FFF;
font-family:sans-serif;
}
li:nth-child(1){
width:100px;
height:100px;
float:left;
line-height:100px;
font-size:50px;
}
div{
width:100%;
}
ul{
padding:0;
margin:0;
width:100%;
text-align:right;
}
li{
width:100px;
height:100px;
margin:20px 5px;
padding:5px;
text-align:center;
list-style:none;
display:inline-block;
line-height:100px;
font-size:50px;
font-weight:500;
background:#fc9090;
color:#FFF;
font-family:sans-serif;
}
li:nth-child(1),li:nth-child(2){
float:left;
}
li:nth-child(5){
display:none;
}
<!-- Наш элемент, у которого есть псевдоэлемент after -->
<div class="element-for-click">
<span>Текст</span>
</div>
.element-for-click{
position: relative;
pointer-events: none;
background:red;
padding:20px;
}
.element-for-click:after {
content: 'Псевдоэлемент';
position: absolute;
padding:20px;
background-color: #4caf50;
cursor: pointer;
pointer-events: auto;
text-align: center;
top: 0;
right:10%;
color: #FFF;
font-weight: bold;
}
document.querySelector('.element-for-click').addEventListener('click', ()=>{
alert('Клик по псевдоэлементу');
});
var onlineInterval = setInterval(function(){online();}, 5000);
var updateInterval =setInterval(function(){update();}, 5000);
clearInterval( onlineInterval );
clearInterval( updateInterval);
selectBtn.addEventListener("click", function (e) {
let elem_active = optionMenu.classList.contains("_active")
optionMenus.forEach(opt => {
opt.classList.remove('_active');
})
optionMenu.classList.toggle("_active",!elem_active)
});