{
html: 'Your html markup',
last: false, // or true
}
$.ajax({
url:'index.php?route=module/loadMore',
type:"GET",
dataType: 'json',
data: {
module_id: '<?php echo $module_id; ?>',
page : 'id_<?php echo $module_id; ?>',
}
success:function (response) {
$('#app_<?php echo $module_id; ?>').append($(response.html).find('.gdfgdf'));
if (response.last) {
$('#more_button').hide();
}
}
});
input[type=chekbox]:focus + span {
// визуализация фокусного состояния для видимого индикатора
}
input[type=chekbox]:checked + span {
// визуализация отмеченного состояния для видимого индикатора
}
let accordionTriggers = document.querySelectorAll('.accordion-item__trigger');
accordionTriggers.forEach(trigger => item.addEventListener('click', () => {
const item = trigger.parentNode;
item.classList.toggle('accordion-item_active');
if(let icon = trigger.querySelector('.accordion-item__title-arrow-off')) {
icon.classList.remove('accordion-item__title-arrow-off')
}
});
next() {
this.currentIndex++;
if (this.currentIndex >= this.slides.length) {
this.currentIndex = 0; // После последнего переходим на первый
}
// … дальше манипуляции со слайдами
}
previous() {
this.currentIndex--;
if (this.currentIndex < 0) {
// После первого переходим на последний (в обратном направлении)
this.currentIndex = this.slides.length - 1;
}
// … дальше манипуляции со слайдами
}
.filter
должен возвращать булево значение. TRUE - оставить элемент, FALSE - удалитьfunction Validation(arr) {
return arr.filter((el) => {
return typeof el.age === "number"
&& el.full_name !== undefined
&& el.full_name.charAt(0) === el.full_name.charAt(0).toUpperCase()
&& el.gender !== undefined
&& el.gender.charAt(0) === el.gender.charAt(0).toUpperCase()
&& el.note !== undefined
&& el.note.charAt(0) === el.note.charAt(0).toUpperCase()
&& el.state !== undefined
&& el.state.charAt(0) === el.state.charAt(0).toUpperCase()
&& el.city !== undefined
&& el.city.charAt(0) === el.city.charAt(0).toUpperCase()
&& el.country !== undefined
&& el.country.charAt(0) === el.country.charAt(0).toUpperCase()
}
function firstLetterIsUpper(str) {
return typeof(str) === 'string'
&& str.length
&& str.charAt(0) === str.charAt(0).toUpperCase()
}
function Validation(arr) {
return arr.filter((el) => {
return typeof el.age === "number"
&& firstLetterIsUpper(el?.full_name)
&& firstLetterIsUpper(el?.gender)
&& firstLetterIsUpper(el?.note)
&& firstLetterIsUpper(el?.state)
&& firstLetterIsUpper(el?.city)
&& firstLetterIsUpper(el?.country)
}
if (e.deltaY > 0) dropdown.next()
else dropdown.previous();
if (e.deltaY > 0) dropdown.open(Math.min(dropdown.cussrentIndex + 1, dropdown.count))
else dropdown.open(Math.max(dropdown.cussrentIndex - 1, 0);
.slick-slide {
transform: scale(0.8);
transition: transform 0.8s ease;
}
.slick-active {
transform: scale(1);
}
.slick-active + .slick-slide {
transform: scale(0.9);
}
.slick-active + .slick-slide ~ .slick-slide {
transform: scale(0.7);
}
@foreach($reviews as $review)
<li>
<h6 class="comment-name">{{ $review->user->name }}</h6>
<div class="content">
<p>{{ $review->content }}</p>
<div class="comment-content-right">
<a href="#" onclick="openReplyModal({{ $review->id }})">Ответить</a>
</div>
</div>
</li>
@endforeach
<div id="modal-reply">
<form>
<input type="hidden" name="review_id" id="review-id-field">
<div class="modal-body">
<textarea name="content"></textarea>
</div>
</form>
</div>
function openReplyModal(reviewId) {
document.getElementById('review-id-field').value = reviewId;
// Bootstrap 4
$('#modal-reply').modal('show');
// Bootstrap 5
const modal = new bootstrap.Modal(document.getElementById('modal-reply'), {});
modal.show();
}