Приветствую. Есть простенькая рулетка, написанная на js + php. Суть проблемы: Есть 69 предметов, каждый предмет в коде выглядит вот так: <a id='r_money'> <li class='item-c rulet-item' id='money'> <img src='/assets/images/roulette-imgs/money.png'> </li> </a> PHP <a id='r_money'> <li class='item-c rulet-item' id='money'> <img src='/assets/images/roulette-imgs/money.png'> </li> </a> Вот как выглядит предмет в БД: Пытаясь изменить id='money' / id='r_money' и путь к новому изображению, возникает иногда ошибка при попытке прокрутить предмет: Также в бд летит пустая строка: Что самое странное, с изначальными предметами, которые были вбиты в рулетку, всё нормально работает, багов нет. Вот сам скрипт рулетки script_roulette.js: var active = true; var running = false; $(window).blur(function () { active = false; }); $(window).focus(function () { active = true; }); var redir_url = '/roulette/win'; function runRoulette() { if (!running) { running = true; var audio = new Audio('/sound/case_scroll.wav'); var slot_width = $('.item-c').outerWidth(true); var offset = slot_width * Math.min(Math.max(Math.random(), .2), .4); var startPos = parseInt($('#carusel').css('margin-left')) - 1; //default 120 var position = 0; var interval = setInterval(function () { var start_offset = parseInt($('#carusel').css('margin-left')) - startPos + 3; var cPosition = Math.floor(start_offset / (slot_width + 6)); if (cPosition != position && cPosition < 0) { position = cPosition; if (active) { audio.pause(); audio.currentTime = 0; audio.volume = 0.25; audio.play(); } } }, 10); var caruselElement = $('#carusel'); if (caruselElement.length > 0) { var leftOffset = caruselElement.find('li[win="1"]').offset().left; var splitterOffset = $('#splitter').offset().left; caruselElement.animate({ 'margin-left': '-=' + (leftOffset - splitterOffset + offset) }, 10000, 'easeOutCubic', function () { if (interval) clearInterval(interval); setTimeout('location="' + redir_url + '";', 400); }); } else { console.error("Element with id 'carusel' not found."); } } } JS var active = true; var running = false; $(window).blur(function () { active = false; }); $(window).focus(function () { active = true; }); var redir_url = '/roulette/win'; function runRoulette() { if (!running) { running = true; var audio = new Audio('/sound/case_scroll.wav'); var slot_width = $('.item-c').outerWidth(true); var offset = slot_width * Math.min(Math.max(Math.random(), .2), .4); var startPos = parseInt($('#carusel').css('margin-left')) - 1; //default 120 var position = 0; var interval = setInterval(function () { var start_offset = parseInt($('#carusel').css('margin-left')) - startPos + 3; var cPosition = Math.floor(start_offset / (slot_width + 6)); if (cPosition != position && cPosition < 0) { position = cPosition; if (active) { audio.pause(); audio.currentTime = 0; audio.volume = 0.25; audio.play(); } } }, 10); var caruselElement = $('#carusel'); if (caruselElement.length > 0) { var leftOffset = caruselElement.find('li[win="1"]').offset().left; var splitterOffset = $('#splitter').offset().left; caruselElement.animate({ 'margin-left': '-=' + (leftOffset - splitterOffset + offset) }, 10000, 'easeOutCubic', function () { if (interval) clearInterval(interval); setTimeout('location="' + redir_url + '";', 400); }); } else { console.error("Element with id 'carusel' not found."); } } } Меняю изображения исходные (192x192) на изображения такого же разрешения - такой же баг. Даже пытался банально изменить название у пикчи на то, что уже заложено в коде - баг. Все скрипты и тд, которые связаны с основным файлом, не имеют в себе упоминания о предмете (я думал, что все предметы в каком-то ещё файле забиты, поэтому их изменение ломает всё). Если кто-то сможет помочь разобраться в проблеме, то буду очень благодарен. Если понадобится доступ к ftp, то напишите в лс
Не совсем понятная эта часть - "Пытаясь изменить id='money' / id='r_money'" - ты хочешь изменить айдишник элемента? И еще, "возникает иногда ошибка" - иногда? Есть какая-то закономерность, когда она появляется? Судя по ошибке, создается ощущение, что скрипт пытается получить элемент рулетки до того, как она полностью загружена - обычно это лечится чем-то вроде $(document).ready() В целом, если еще проблема актуальна - могу глянуть. Дай знать, я тогда в лс напишу