
JavaScript
- 10 ответов
- 0 вопросов
7
Вклад в тег
function replaceE(node) {
if (node.nodeType === Node.TEXT_NODE) {
node.textContent = node.textContent.replace(/е/g, 'ё').replace(/Е/g, 'Ё');
} else {
node.childNodes.forEach(replaceE);
}
}
$(document).ready(function() {
// инициализация Select2
$(".city").select2({
ajax: {
url: "/ajax.php?action=main&type=get_city",
type: "post",
dataType: 'json',
delay: 250,
data: function(params) {
return {
searchTerm: params.term
};
},
processResults: function(response) {
return {
results: response
};
},
cache: true
}
});
// глобальная переменная для хранения выбранного города
let selectedCity = null;
// обработчик выбора города
$('.city').on('select2:select', function(e) {
selectedCity = e.params.data.id; // или e.params.data.text в зависимости от того, что нужно
console.log("Выбран город:", selectedCity);
});
// основная функция фильтрации
function getFilter() {
let action = 'get_data';
let category = filterCategory('category');
let city = selectedCity; // используем сохраненное значение города
$.ajax({
url: '/ajax.php?action=main&type=get_data',
method: 'POST',
data: {
action: action,
category: category,
city: city
},
success: function(response) {
$('#filterResults').html(response);
}
});
}
function filterCategory(classname) {
let filter = [];
$('.' + classname + ':checked').each(function() {
filter.push($(this).val());
});
return filter;
}
$('.filter_click').click(function() {
getFilter();
});
});
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<div style="display: none;">
<iframe src="about:blank" width="1" height="1"></iframe>
</div>
clamp()
, calc()
, sin()
и других действительно нагружают браузер.@media
и лайтхаус в помощь :)