Дмитрий: перегрузка - это как в ооп, замена методов. Грубо говоря. По умолчанию сабмит - это отправка формы на адрес action методом method п нажатию кнопки submit. А вы это перехватываете и заменяете. Так вот чтобы после вашего перехвата не происходил стандартный сабмит, надо возвращать false, то есть прервать очередь. И тогда никакие preventDefault не нужны там
Можно было бы пойти и другим путем - проходить также по основному массиву, загоняя все пройденные элементы в подмассив второго большого массива. А как только разница с предыдущим элементом больше единицы, начинать загонять в следующий подмассив. Получится массив массивов. Далее просто вывести их через запятую, соединяя первый и последний элемент дефисом. Будет даже короче.
Только надо не забыть, что все современные браузеры заблокируют такое открытие. Его надо производить по реальному клику при каком-либо переходе. Т.е. логика будет чуть сложнее - проверка вешается на каждый клик, а не просто при инициализации страницы.
у вас товары генерируются на Backend-е, выводятся каким-то шаблоном. Так вот прямо в выводе, если у товара нет видео, то не выводите вообще эту вкладку и DIV для нее
Дмитрий: вы слышали в этом случае про set_time_limi(0) ? А при запуске скрипта прроверяйте, что он уже исполняется например через ps -ax | grep, и если уже есть экземпляр, то break нового инстанса скрипта