Гость
Uncaught TypeError: невозможно прочитать свойства неопределенного значения (чтение «keyCode»)
Сообщение
Гость » 11 мар 2024, 12:31
Надеюсь, у меня все хорошо, поэтому я создаю POS-систему, обычно добавляю товар в корзину. Я проверил, что товар добавлен и данные в порядке:
Код: Выделить всё
function addToCart(id, name, origQuantity, price_v, price_v2 = null, price_v3 = null, img, illimited_quantity) {
// Fetching the updated quantity
let quantityElement = document.getElementById('product-qty-' + id);
let quantity = origQuantity; // original quatity
if (quantityElement) {
let domQuantity = parseInt(quantityElement.textContent.replace('Qty: ', ''));
if (domQuantity !== origQuantity) {
quantity = domQuantity;
}
}
if (illimited_quantity == 1) {
if (!("id" + id in cart)) {
cart['id' + id] = {
'id': id,
'quantity': 1,
'name': name,
'price': price_v,
'img': img,
};
let imgurl = '';
if (img != '') {
imgurl = '/images/product/' + img;
} else {
imgurl = '/assets/img/product/noimage.png';
}
let output = `
[list]
[*]
[i]
[h4]${name}[/h4]
#${id}
[*]
${price_v} Da
${price_v2 != null && price_v2 != '' ? `${price_v2} Da` : ''}
${price_v3 != null && price_v3 != '' ? `${price_v3} Da` : ''}
[*][url=javascript:void(0);]
[img]/assets/img/icons/delete-2.svg[/img]
[/url]
[/list]
`;
// append html
$('#cart').append(output);
} else {
cart['id' + id].quantity = parseInt(cart['id' + id].quantity) + 1;
$('#prod_quant_' + id).val(cart['id' + id].quantity);
}
} else {
if (!("id" + идентификатор в корзине)) {
if (quantity == 0) {
Swal.fire(
'Erreur',
'Repture Stock!',
' error'
);
return;
cars['id' + id] = {
'id': id,
'количество': 1,
'имя': имя,
'цена': цена_v,
'img': img,
};
let imgurl = '';
if (img != '') {
imgurl = '/images/product/' + img;
} else {
imgurl = '/assets/img/product/noimage.png';
let output = `
[img]${imgurl}[/img]
${name
< !-- Замените отображение цены раскрывающимся списком выбора -->
${price_v} Да
${price_v2 != null && Price_v2 != '' ? `${price_v2} Da` : '' ${price_v3 != null && Price_v3 != '' ? `${price_v3} Да` : ''}
[url=javascript:void(0)][/i][/url]
[i][/i]
[i]
[/i]
`;
// Добавляем HTML
$('#cart').append(output);
< br />
} else {
// проверяем, достигнуто ли максимальное количество
if ((cart['id' + id].quantity + 1) > количество) {
Swal.fire(
'Ошибка',
'Максимальное количество',
'ошибка'
);
} else {
cars['id' + id].quantity = parseInt(cart['id' + id].quantity) + 1;
$('#prod_quant_' + id).val(cart['id' + id].quantity);
CalculTotal();
$('input[placeholder="SKU / Nom produit"]') .val('');
```
когда товар добавлен, я проверяю распродажу и обновляю цену и количество :< br />
```
function checkSale() {
// проверяем, пуста ли корзина
if (jQuery.isEmptyObject(cart)) {
Swal.fire(
'Ошибка',
'Корзина пуста!',
'ошибка'
);
return;
/>
// Проверяем количество каждого товара в корзине, чтобы убедиться, что оно не ниже уровня запасов
for (const [key, item] of Object.entries(cart)) {
if ( !updateProductQuantity(item.id, item.name, item.quantity)) {
// Остановить продажу или обработать эту ошибку дальше, поскольку количество стало отрицательным
return;
updateCheckoutPrice();
if ($('#client_select').val() == 0) {
addSale( );
} else {
// получаем информацию о клиенте (кредит)
const url = '/pos/client/' + $('#client_select').val();
$.get(url, function(data, status) {
if (status == 'success') {
// устанавливаем его в модальном режиме
$('#modal_client_fullname') .text(data.fullname);
$('#modal_client_credit').text(data.credit + ' Da');
// показать модальное
$(' #sellModalTrigger').click();
} else {
Swal.fire(
'Ошибка',
'Клиент не найден!',
'ошибка'
);
});
тогда я' добавляю распродажу:
Код: Выделить всё
function addSale() {
// check if cart is empty
if (jQuery.isEmptyObject(cart)) {
Swal.fire(
'Erreur',
'Cart empty!',
'error'
);
return;
}
$.ajax({
url: "{{ route('pos.sale.store') }}",
type: 'POST',
data: {
_token: '{{ @csrf_token() }}',
cart: $('#cart'),
client: $('#client_select').val(),
paid: $('#paid').val(),
discount: $('#discount').val(),
new_total: $('#new_total_input').val()
},
beforeSend: function() {
// show loader
$("#global-loader").fadeIn("slow");
},
error: function() {
// hide loader
$("#global-loader").fadeOut("slow");
Swal.fire(
'Erreur',
'veuillez réessayer de nouveau',
'error'
);
},
success: function(data, status) {
// скрываем загрузчик
$("#global-loader").fadeOut("slow");
// печатаем счет
$.print(data);
$.print(data);
// перезагрузка продуктов
reloadProducts();
// опорожнение корзины
$('#cart').html('');
cars = {};
// пересчет суммы
CalculTotal ();
// модальное закрытие
$("#sellModal .close").click();
});
}
когда я нажимаю кнопку разместить заказ:
it say : Uncaught TypeError: Cannot read properties of undefined (reading 'keyCode')
and in console its referencing to script.js file :
Код: Выделить всё
/*! -----------------------------------------------------------------------------------
Template Name: Cuba Admin
Template URI: http://admin.pixelstrap.com/cuba/theme
Description: This is Admin theme
Author: Pixelstrap
Author URI: https://themeforest.net/user/pixelstrap
-----------------------------------------------------------------------------------
01. password show hide
02. Background Image js
03. sidebar filter
04. Language js
05. Translate js
--------------------------------------------------------------------------------- */
(function ($) {
"use strict";
$(document).on("click", function (e) {
var outside_space = $(".outside");
if (
!outside_space.is(e.target) &&
outside_space.has(e.target).length === 0
) {
$(".menu-to-be-close").removeClass("d-block");
$(".menu-to-be-close").css("display", "none");
}
});
$(".prooduct-details-box .close").on("click", function (e) {
var tets = $(this).parent().parent().parent().parent().addClass("d-none");
console.log(tets);
});
if ($(".page-wrapper").hasClass("horizontal-wrapper")) {
$(".sidebar-list").hover(
function () {
$(this).addClass("hoverd");
},
function () {
$(this).removeClass("hoverd");
}
);
$(window).on("scroll", function () {
if ($(this).scrollTop() < 600) {
$(".sidebar-list").removeClass("hoverd");
}
});
}
/*----------------------------------------
password show hide
----------------------------------------*/
$(".show-hide").show();
$(".show-hide span").addClass("show");
$(".show-hide span").click(function () {
if ($(this).hasClass("show")) {
$('input[name="login[password]"]').attr("type", "text");
$(this).removeClass("show");
} else {
$('input[name="login[password]"]').attr("type", "password");
$(this).addClass("show");
}
});
$('form button[type="submit"]').on("click", function () {
$(".show-hide span").addClass("show");
$(".show-hide")
.parent()
.find('input[name="login[password]"]')
.attr("type", "password");
});
/*=====================
02. Фоновое изображение js
=========================*/
$(".bg-center").parent ().addClass("b-center");
$(".bg-img-cover").parent().addClass("bg-size");
$(".bg -img-cover").each(function () {
var el = $(this),
src = el.attr("src"),
родитель = el.parent( );
parent.css({
"background-image": "url(" + src + ")",
"background-size": "cover",
"background-position": "center",
display: "block",
});
el.hide();
});
$(".mega-menu-container").css("display", "none");
$(".header-search").click(function () {
$ (".search-full").addClass("open");
});
$(".close-search").click(function () {
$(" .search-full").removeClass("open");
$("body").removeClass("offcanvas");
});
$(".mobile-toggle ").click(function () {
$(".nav-menus").toggleClass("open");
});
$(".mobile-toggle-left ").click(function () {
$(".left-header").toggleClass("open");
});
$(".bookmark-search") .click(function () {
$(".form-control-search").toggleClass("open");
});
$(".filter-toggle") .click(function () {
$(".product-sidebar").toggleClass("open");
});
$(".toggle-data").click (function () {
$(".product-wrapper").toggleClass("sidebaron");
});
$(".form-control-search input"). keyup(function (e) {
if (e.target.value) {
$(".page-wrapper").addClass("offcanvas-bookmark");
} else {
$(".page-wrapper").removeClass("offcanvas-bookmark");
});
$(".search-full input"). keyup(function (e) {
console.log(e.target.value);
if (e.target.value) {
$("body").addClass("offcanvas ");
} else {
$("body").removeClass("offcanvas");
});
$( "body").keydown(function (e) {
if (e.keyCode == 27) {
$(".search-full input").val("");
$(".form-control-search input").val("");
$(".page-wrapper").removeClass("offcanvas-bookmark");
$(" .search-full").removeClass("open");
$(".search-form .form-control-search").removeClass("open");
$("body" ).removeClass("offcanvas");
});
$(".mode").on("click", function () {
const bodyModeDark = $("body").hasClass("только для темных");
if (!bodyModeDark) {
$(".mode").addClass("active");< br /> localStorage.setItem("mode-cuba", "только тёмный");
$("body").addClass("только тёмный");
$("body") .removeClass("light");
if (bodyModeDark) {
$(".mode").removeClass("active");
localStorage.setItem(" mode-cuba", "light");
$("body").removeClass("только для темных");
$("body").addClass("light");
});
$("body").addClass(
localStorage.getItem("mode-cuba")
? localStorage.getItem("mode-cuba")
: "light"
);
$(".mode").addClass(
localStorage.getItem("mode-cuba) ") === "только для темных" ? "active" : " "
);
// фильтр боковой панели
$(".md-sidebar .md-sidebar -toggle ").on("click", function (e) {
$(".md-sidebar .md-sidebar-aside ").toggleClass("open");
});
$(".loader-wrapper").fadeOut("slow", function () {
$(this).remove();
});
$(window).on("scroll", function () {
if ($(this).scrollTop() > 600) {
$(".tap-top").fadeIn();
} else {
$(".tap-top").fadeOut();
});
$(".tap-top").click(function () {
$("html, body").animate(
{
ScrollTop: 0,
},
600
);
return false;
});
(function ($, window, document, undefined) {
"use strict";
var $ripple = $(".js-ripple");
$ripple.on("click.ui.ripple" , функция (e) {
var $this = $(this);
var $offset = $this.parent().offset();
var $circle = $this.find (".c-ripple__circle");
var x = e.pageX - $offset.left;
var y = e.pageY - $offset.top;
$circle.css( {
вверху: y + "px",
слева: x + "px",
});
$this.addClass("is-active");
});
$ripple.on(
"animationend webkitAnimationEnd oanimationend MSAnimationEnd",
function (e) {
$(this).removeClass("is-active" );
);
})(jQuery, window, document);
// активная ссылка
$(" .chat-menu-icons .toogle-bar").click(function () {
$(".chat-menu").toggleClass("show");
});
// Язык
var tnum = "en";
$(document).ready(function () {
if (localStorage.getItem("primary ") != null) {
var Primary_val = localStorage.getItem("primary");
$("#ColorPicker1").val(primary_val);
var Secondary_val = localStorage.getItem ("вторичный");
$("#ColorPicker2").val(вторичный_val);
$(document).click(function (e) {
$(".translate_wrapper, .more_lang").removeClass("active");
});
$(".translate_wrapper .current_lang").click(function (e) {
e.stopPropagation();
$(this).parent().toggleClass("active");
setTimeout(function () {
$(". more_lang").toggleClass("active");
}, 5);
});
/*TRANSLATE*/
Translate(tnum);< br />
$(".more_lang .lang").click(function () {
$(this).addClass("selected").siblings().removeClass("selected");
$(".more_lang").removeClass("active");
var i = $(this).find("i").attr("class");< br /> var lang = $(this).attr("значение-данных");
var tnum = lang;
Translate(tnum);
$(". current_lang .lang-txt").text(lang);
$(".current_lang i").attr("class", i);
});
});< br />
function Translate(tnum) {
$(".lan-1").text(trans[0][tnum]);
$(".lan-2" ).text(trans[1][tnum]);
$(".lan-3").text(trans[2][tnum]);
$(".lan-4" ).text(trans[3][tnum]);
$(".lan-5").text(trans[4][tnum]);
$(".lan-6" ).text(trans[5][tnum]);
$(".lan-7").text(trans[6][tnum]);
$(".lan-8" ).text(trans[7][tnum]);
$(".lan-9").text(trans[8][tnum]);
}
var trans = [
{
en: "General",
pt: "Geral",
es: "Generalo",
fr: "Génà ©rale",
de: "Generel",
cn: "一般",
ae: "ØØ¬Ù†Ø±Ø§Ù„ Ù„ÙˆØ§Ø ¡",
},
{
en: "Панели мониторинга, виджеты и макет.",
pt: "Панели, виджеты и макет.",
es: "Панели, окна и окна.",
fr: "Таблицы границ, виджеты и размещение на странице.",
de: "Панели мониторинга, виджеты в макете.",
cn: "仪表æ¿ï¼Œå°å·¥å…·å'Œå¸ƒå±€ã€‚",
ae: "Ù„ÙˆØØ§Øª المع٠„ومات والأدوات والتخطيط.",
},
{
ru: "Панели мониторинга" ,
pt: "Painéis",
es: "Paneloj",
fr: "Tableaux",
de: "Dashboards",
cn: " 仪表æ¿",
ae: "ÙˆØØ§Øª القيادة ",
},
{
en: «По умолчанию»,
pt: «Стандарт»,
es: «Vaikimisi»,
fr: «Défaut»,
de: «Standaard»,
cn: "é›»å商務",
ae: "ÙˆØ¥ÙØªØ±Ø§Ø¶ÙŠ",
},
{
en : " Электронная коммерция",
pt: "Электронная коммерция",
es: "Komerco",
fr: "Commerce électronique",
de: " Электронная коммерция",< br /> cn: "é›»å商務",
ae: "والت0¬Ø§Ø±Ø© الإل كترونية ",
},
{
en: "Виджеты",
pt: "Инструмент",
es: "Видин",< br /> fr: " Виджеты",
de: "Виджеты",
cn: "å°éƒ¨ä»¶",
ae: "ÙˆØ§Ù„ØØ§Ø¬ يات",< br /> },
{
en: "Макет страницы",
pt: "Макет страницы",
es: "PaÄa aranÄo ",
fr: " Tableaux",
de: "Mise en page",
cn: "é é¢ä½ˆå±€",
ae: "وتخط يط Ø§Ù„ØµÙØØ©" ,
},
{
en: "Приложения",
pt: "Формы",
es: " Aplikoy",
fr: "Приложения ",
de: "Toepassingen",
cn: "æ‡‰ç”¨é ˜åŸŸ",
ae: "وا لتطبيقات ",
},
{
en: «Готовые к использованию приложений»,
en: «Готовые к использованию приложений»,
es: «Приложения Preta uzi» ,
fr: "Приложения готовы к использованию",
de: "Пожалуйста, используйте приложения",
cn: "ä»ªè¡ ¨æ¿",
ae: "جاهز لاستخدام التطبيقات",
},
];
$(".mobile-title svg").click(function () {
$(".header-mega").toggleClass(" d-block");
} );
$(".onhover-dropdown").on("click", function () {
$(this). Children(".onhover-show-div") .toggleClass("active");
});
$("#flip-btn").click(function () {
$(".flip-card -inner").addClass("flipped");
});
$("#flip-back").click( function () {
$(" .flip-card-inner").removeClass("flipped");
});
})(jQuery);
< br />вот именно здесь:
Код: Выделить всё
$("body").keydown(function (e) {
if (e.keyCode == 27) {
$(".search-full input").val("");
$(".form-control-search input").val("");
$(".page-wrapper").removeClass("offcanvas-bookmark");
$(".search-full").removeClass("open");
$(".search-form .form-control-search").removeClass("open");
$("body").removeClass("offcanvas");
}
i dont have any use of keycode in my sale function , i dont know even why its referencing to this ,
can someone have an idea , thank you very much
I tried to search a reference between script.js and my two function but no hope , i tried to change that block of code in js like this to check for keycode :
Код: Выделить всё
$("body").keydown(function (e) {
if (e && e.keyCode == 27) {
$(".search-full input").val("");
$(".form-control-search input").val("");
$(".page-wrapper").removeClass("offcanvas-bookmark");
$(".search-full").removeClass("open");
$(".search-form .form-control-search").removeClass("open");
$("body").removeClass("offcanvas");
}
});
it goes from keycode error to undefined 'type'
Источник:
https://stackoverflow.com/questions/781 ... ng-keycode
1710149463
Гость
Надеюсь, у меня все хорошо, поэтому я создаю POS-систему, обычно добавляю товар в корзину. Я проверил, что товар добавлен и данные в порядке: [code]function addToCart(id, name, origQuantity, price_v, price_v2 = null, price_v3 = null, img, illimited_quantity) { // Fetching the updated quantity let quantityElement = document.getElementById('product-qty-' + id); let quantity = origQuantity; // original quatity if (quantityElement) { let domQuantity = parseInt(quantityElement.textContent.replace('Qty: ', '')); if (domQuantity !== origQuantity) { quantity = domQuantity; } } if (illimited_quantity == 1) { if (!("id" + id in cart)) { cart['id' + id] = { 'id': id, 'quantity': 1, 'name': name, 'price': price_v, 'img': img, }; let imgurl = ''; if (img != '') { imgurl = '/images/product/' + img; } else { imgurl = '/assets/img/product/noimage.png'; } let output = ` [list] [*] [i] [h4]${name}[/h4] #${id} [*] ${price_v} Da ${price_v2 != null && price_v2 != '' ? `${price_v2} Da` : ''} ${price_v3 != null && price_v3 != '' ? `${price_v3} Da` : ''} [*][url=javascript:void(0);] [img]/assets/img/icons/delete-2.svg[/img] [/url] [/list] `; // append html $('#cart').append(output); } else { cart['id' + id].quantity = parseInt(cart['id' + id].quantity) + 1; $('#prod_quant_' + id).val(cart['id' + id].quantity); } } else { if (!("id" + идентификатор в корзине)) { if (quantity == 0) { Swal.fire( 'Erreur', 'Repture Stock!', ' error' ); return; cars['id' + id] = { 'id': id, 'количество': 1, 'имя': имя, 'цена': цена_v, 'img': img, }; let imgurl = ''; if (img != '') { imgurl = '/images/product/' + img; } else { imgurl = '/assets/img/product/noimage.png'; let output = ` [img]${imgurl}[/img] ${name < !-- Замените отображение цены раскрывающимся списком выбора --> ${price_v} Да ${price_v2 != null && Price_v2 != '' ? `${price_v2} Da` : '' ${price_v3 != null && Price_v3 != '' ? `${price_v3} Да` : ''} [url=javascript:void(0)][/i][/url] [i][/i] [i] [/i] `; // Добавляем HTML $('#cart').append(output); < br /> } else { // проверяем, достигнуто ли максимальное количество if ((cart['id' + id].quantity + 1) > количество) { Swal.fire( 'Ошибка', 'Максимальное количество', 'ошибка' ); } else { cars['id' + id].quantity = parseInt(cart['id' + id].quantity) + 1; $('#prod_quant_' + id).val(cart['id' + id].quantity); CalculTotal(); $('input[placeholder="SKU / Nom produit"]') .val(''); ``` когда товар добавлен, я проверяю распродажу и обновляю цену и количество :< br /> ``` function checkSale() { // проверяем, пуста ли корзина if (jQuery.isEmptyObject(cart)) { Swal.fire( 'Ошибка', 'Корзина пуста!', 'ошибка' ); return; /> // Проверяем количество каждого товара в корзине, чтобы убедиться, что оно не ниже уровня запасов for (const [key, item] of Object.entries(cart)) { if ( !updateProductQuantity(item.id, item.name, item.quantity)) { // Остановить продажу или обработать эту ошибку дальше, поскольку количество стало отрицательным return; updateCheckoutPrice(); if ($('#client_select').val() == 0) { addSale( ); } else { // получаем информацию о клиенте (кредит) const url = '/pos/client/' + $('#client_select').val(); $.get(url, function(data, status) { if (status == 'success') { // устанавливаем его в модальном режиме $('#modal_client_fullname') .text(data.fullname); $('#modal_client_credit').text(data.credit + ' Da'); // показать модальное $(' #sellModalTrigger').click(); } else { Swal.fire( 'Ошибка', 'Клиент не найден!', 'ошибка' ); }); [/code] тогда я' добавляю распродажу: [code]function addSale() { // check if cart is empty if (jQuery.isEmptyObject(cart)) { Swal.fire( 'Erreur', 'Cart empty!', 'error' ); return; } $.ajax({ url: "{{ route('pos.sale.store') }}", type: 'POST', data: { _token: '{{ @csrf_token() }}', cart: $('#cart'), client: $('#client_select').val(), paid: $('#paid').val(), discount: $('#discount').val(), new_total: $('#new_total_input').val() }, beforeSend: function() { // show loader $("#global-loader").fadeIn("slow"); }, error: function() { // hide loader $("#global-loader").fadeOut("slow"); Swal.fire( 'Erreur', 'veuillez réessayer de nouveau', 'error' ); }, success: function(data, status) { // скрываем загрузчик $("#global-loader").fadeOut("slow"); // печатаем счет $.print(data); $.print(data); // перезагрузка продуктов reloadProducts(); // опорожнение корзины $('#cart').html(''); cars = {}; // пересчет суммы CalculTotal (); // модальное закрытие $("#sellModal .close").click(); }); } [/code] когда я нажимаю кнопку разместить заказ: [code] Sell [/code] it say : Uncaught TypeError: Cannot read properties of undefined (reading 'keyCode') and in console its referencing to script.js file : [code]/*! ----------------------------------------------------------------------------------- Template Name: Cuba Admin Template URI: http://admin.pixelstrap.com/cuba/theme Description: This is Admin theme Author: Pixelstrap Author URI: https://themeforest.net/user/pixelstrap ----------------------------------------------------------------------------------- 01. password show hide 02. Background Image js 03. sidebar filter 04. Language js 05. Translate js --------------------------------------------------------------------------------- */ (function ($) { "use strict"; $(document).on("click", function (e) { var outside_space = $(".outside"); if ( !outside_space.is(e.target) && outside_space.has(e.target).length === 0 ) { $(".menu-to-be-close").removeClass("d-block"); $(".menu-to-be-close").css("display", "none"); } }); $(".prooduct-details-box .close").on("click", function (e) { var tets = $(this).parent().parent().parent().parent().addClass("d-none"); console.log(tets); }); if ($(".page-wrapper").hasClass("horizontal-wrapper")) { $(".sidebar-list").hover( function () { $(this).addClass("hoverd"); }, function () { $(this).removeClass("hoverd"); } ); $(window).on("scroll", function () { if ($(this).scrollTop() < 600) { $(".sidebar-list").removeClass("hoverd"); } }); } /*---------------------------------------- password show hide ----------------------------------------*/ $(".show-hide").show(); $(".show-hide span").addClass("show"); $(".show-hide span").click(function () { if ($(this).hasClass("show")) { $('input[name="login[password]"]').attr("type", "text"); $(this).removeClass("show"); } else { $('input[name="login[password]"]').attr("type", "password"); $(this).addClass("show"); } }); $('form button[type="submit"]').on("click", function () { $(".show-hide span").addClass("show"); $(".show-hide") .parent() .find('input[name="login[password]"]') .attr("type", "password"); }); /*===================== 02. Фоновое изображение js =========================*/ $(".bg-center").parent ().addClass("b-center"); $(".bg-img-cover").parent().addClass("bg-size"); $(".bg -img-cover").each(function () { var el = $(this), src = el.attr("src"), родитель = el.parent( ); parent.css({ "background-image": "url(" + src + ")", "background-size": "cover", "background-position": "center", display: "block", }); el.hide(); }); $(".mega-menu-container").css("display", "none"); $(".header-search").click(function () { $ (".search-full").addClass("open"); }); $(".close-search").click(function () { $(" .search-full").removeClass("open"); $("body").removeClass("offcanvas"); }); $(".mobile-toggle ").click(function () { $(".nav-menus").toggleClass("open"); }); $(".mobile-toggle-left ").click(function () { $(".left-header").toggleClass("open"); }); $(".bookmark-search") .click(function () { $(".form-control-search").toggleClass("open"); }); $(".filter-toggle") .click(function () { $(".product-sidebar").toggleClass("open"); }); $(".toggle-data").click (function () { $(".product-wrapper").toggleClass("sidebaron"); }); $(".form-control-search input"). keyup(function (e) { if (e.target.value) { $(".page-wrapper").addClass("offcanvas-bookmark"); } else { $(".page-wrapper").removeClass("offcanvas-bookmark"); }); $(".search-full input"). keyup(function (e) { console.log(e.target.value); if (e.target.value) { $("body").addClass("offcanvas "); } else { $("body").removeClass("offcanvas"); }); $( "body").keydown(function (e) { if (e.keyCode == 27) { $(".search-full input").val(""); $(".form-control-search input").val(""); $(".page-wrapper").removeClass("offcanvas-bookmark"); $(" .search-full").removeClass("open"); $(".search-form .form-control-search").removeClass("open"); $("body" ).removeClass("offcanvas"); }); $(".mode").on("click", function () { const bodyModeDark = $("body").hasClass("только для темных"); if (!bodyModeDark) { $(".mode").addClass("active");< br /> localStorage.setItem("mode-cuba", "только тёмный"); $("body").addClass("только тёмный"); $("body") .removeClass("light"); if (bodyModeDark) { $(".mode").removeClass("active"); localStorage.setItem(" mode-cuba", "light"); $("body").removeClass("только для темных"); $("body").addClass("light"); }); $("body").addClass( localStorage.getItem("mode-cuba") ? localStorage.getItem("mode-cuba") : "light" ); $(".mode").addClass( localStorage.getItem("mode-cuba) ") === "только для темных" ? "active" : " " ); // фильтр боковой панели $(".md-sidebar .md-sidebar -toggle ").on("click", function (e) { $(".md-sidebar .md-sidebar-aside ").toggleClass("open"); }); $(".loader-wrapper").fadeOut("slow", function () { $(this).remove(); }); $(window).on("scroll", function () { if ($(this).scrollTop() > 600) { $(".tap-top").fadeIn(); } else { $(".tap-top").fadeOut(); }); $(".tap-top").click(function () { $("html, body").animate( { ScrollTop: 0, }, 600 ); return false; }); (function ($, window, document, undefined) { "use strict"; var $ripple = $(".js-ripple"); $ripple.on("click.ui.ripple" , функция (e) { var $this = $(this); var $offset = $this.parent().offset(); var $circle = $this.find (".c-ripple__circle"); var x = e.pageX - $offset.left; var y = e.pageY - $offset.top; $circle.css( { вверху: y + "px", слева: x + "px", }); $this.addClass("is-active"); }); $ripple.on( "animationend webkitAnimationEnd oanimationend MSAnimationEnd", function (e) { $(this).removeClass("is-active" ); ); })(jQuery, window, document); // активная ссылка $(" .chat-menu-icons .toogle-bar").click(function () { $(".chat-menu").toggleClass("show"); }); // Язык var tnum = "en"; $(document).ready(function () { if (localStorage.getItem("primary ") != null) { var Primary_val = localStorage.getItem("primary"); $("#ColorPicker1").val(primary_val); var Secondary_val = localStorage.getItem ("вторичный"); $("#ColorPicker2").val(вторичный_val); $(document).click(function (e) { $(".translate_wrapper, .more_lang").removeClass("active"); }); $(".translate_wrapper .current_lang").click(function (e) { e.stopPropagation(); $(this).parent().toggleClass("active"); setTimeout(function () { $(". more_lang").toggleClass("active"); }, 5); }); /*TRANSLATE*/ Translate(tnum);< br /> $(".more_lang .lang").click(function () { $(this).addClass("selected").siblings().removeClass("selected"); $(".more_lang").removeClass("active"); var i = $(this).find("i").attr("class");< br /> var lang = $(this).attr("значение-данных"); var tnum = lang; Translate(tnum); $(". current_lang .lang-txt").text(lang); $(".current_lang i").attr("class", i); }); });< br /> function Translate(tnum) { $(".lan-1").text(trans[0][tnum]); $(".lan-2" ).text(trans[1][tnum]); $(".lan-3").text(trans[2][tnum]); $(".lan-4" ).text(trans[3][tnum]); $(".lan-5").text(trans[4][tnum]); $(".lan-6" ).text(trans[5][tnum]); $(".lan-7").text(trans[6][tnum]); $(".lan-8" ).text(trans[7][tnum]); $(".lan-9").text(trans[8][tnum]); } var trans = [ { en: "General", pt: "Geral", es: "Generalo", fr: "Génà ©rale", de: "Generel", cn: "一般", ae: "ØØ¬Ù†Ø±Ø§Ù„ Ù„ÙˆØ§Ø ¡", }, { en: "Панели мониторинга, виджеты и макет.", pt: "Панели, виджеты и макет.", es: "Панели, окна и окна.", fr: "Таблицы границ, виджеты и размещение на странице.", de: "Панели мониторинга, виджеты в макете.", cn: "仪表æ¿ï¼Œå°å·¥å…·å'Œå¸ƒå±€ã€‚", ae: "Ù„ÙˆØØ§Øª المع٠„ومات والأدوات والتخطيط.", }, { ru: "Панели мониторинга" , pt: "Painéis", es: "Paneloj", fr: "Tableaux", de: "Dashboards", cn: " 仪表æ¿", ae: "ÙˆØØ§Øª القيادة ", }, { en: «По умолчанию», pt: «Стандарт», es: «Vaikimisi», fr: «Défaut», de: «Standaard», cn: "é›»å商務", ae: "ÙˆØ¥ÙØªØ±Ø§Ø¶ÙŠ", }, { en : " Электронная коммерция", pt: "Электронная коммерция", es: "Komerco", fr: "Commerce électronique", de: " Электронная коммерция",< br /> cn: "é›»å商務", ae: "والت0¬Ø§Ø±Ø© الإل كترونية ", }, { en: "Виджеты", pt: "Инструмент", es: "Видин",< br /> fr: " Виджеты", de: "Виджеты", cn: "å°éƒ¨ä»¶", ae: "ÙˆØ§Ù„ØØ§Ø¬ يات",< br /> }, { en: "Макет страницы", pt: "Макет страницы", es: "PaÄa aranÄo ", fr: " Tableaux", de: "Mise en page", cn: "é é¢ä½ˆå±€", ae: "وتخط يط Ø§Ù„ØµÙØØ©" , }, { en: "Приложения", pt: "Формы", es: " Aplikoy", fr: "Приложения ", de: "Toepassingen", cn: "æ‡‰ç”¨é ˜åŸŸ", ae: "وا لتطبيقات ", }, { en: «Готовые к использованию приложений», en: «Готовые к использованию приложений», es: «Приложения Preta uzi» , fr: "Приложения готовы к использованию", de: "Пожалуйста, используйте приложения", cn: "ä»ªè¡ ¨æ¿", ae: "جاهز لاستخدام التطبيقات", }, ]; $(".mobile-title svg").click(function () { $(".header-mega").toggleClass(" d-block"); } ); $(".onhover-dropdown").on("click", function () { $(this). Children(".onhover-show-div") .toggleClass("active"); }); $("#flip-btn").click(function () { $(".flip-card -inner").addClass("flipped"); }); $("#flip-back").click( function () { $(" .flip-card-inner").removeClass("flipped"); }); })(jQuery); [/code]< br />вот именно здесь: [code]$("body").keydown(function (e) { if (e.keyCode == 27) { $(".search-full input").val(""); $(".form-control-search input").val(""); $(".page-wrapper").removeClass("offcanvas-bookmark"); $(".search-full").removeClass("open"); $(".search-form .form-control-search").removeClass("open"); $("body").removeClass("offcanvas"); } [/code] i dont have any use of keycode in my sale function , i dont know even why its referencing to this , can someone have an idea , thank you very much I tried to search a reference between script.js and my two function but no hope , i tried to change that block of code in js like this to check for keycode : [code]$("body").keydown(function (e) { if (e && e.keyCode == 27) { $(".search-full input").val(""); $(".form-control-search input").val(""); $(".page-wrapper").removeClass("offcanvas-bookmark"); $(".search-full").removeClass("open"); $(".search-form .form-control-search").removeClass("open"); $("body").removeClass("offcanvas"); } }); [/code] it goes from keycode error to undefined 'type' Источник: [url]https://stackoverflow.com/questions/78137533/uncaught-typeerror-cannot-read-properties-of-undefined-reading-keycode[/url]