ifap, да, решение писалось для предоставленной разметки
однако, если указывать в вызове функции #content, а не #main то и с такой разметкой заработает
ну или убрать > в селекторах в функции
Adamos, тут на самом деле вообще много вопросов, но про них писать не стал, да и оставил комментарий, а не ответ по тем же причинам
а вот проверить массив на пустоту можно и без count()
johnymkp, цель всегда одна и стандартное действие, если оно есть, выполняется только на цели
собственно для большинства "интерактивных" в html есть запрет на вложение внутрь других "интерактивных" элементов ("интерактивные" — здесь по которым можно клиннуть/тапнуть и т.п.), но даже в этом случае ссылка вставленная в label с привязанным контролом (но так лучше не делать) при взаимодействии с ней не трогает сам контрол
так что да, при этом теоретическом поведении будет только один "Привет, мир!"
именно, preventDefault() говорит исключительно про стандартное поведение на целевом элементе, никаких стандартных поведений на родителях не происходит и не может происходить из-за написанного выше
johnymkp, именно, о чём собственно и говорит приведённый код
события по большому счёту нужны для изменения поведения браузера, и если код прямо говорит через вызов event.stopPropagation(), что это событие его (код) дальше не интересует, то выполняется стандартное действие
да и обратите внимание на дополнение ответа, что некоторые стандартные действия браузер выполняет до порождения события
а зачем думать, когда нужно смотреть?
и делать это с кривым форматированием (без кнопки </> в редакторе) сложно
но тут явная опечатка, т.к. MaddyMurk никакого отношения к боту не имеет
вариант 0: svg
вариант 1: дополнительный div и два псевдоэлемента с радиальными градиентами
вариант 2: игры с разными градиентами
вариант 3: https://codepen.io/Ivan-U7n/pen/VwoGvGr
Alex, data-ссылка это ссылка вида data:mime/type,url-encoded-content или data:mime/type;base64,base64-encoded-content — т.е. я предлагаю попробовать заменить src в img на data-ссылку
а если перед этим тегом img есть тяжёлый script с src, то может помочь добавление атрибутов defer или async в этот script
Дмитрий Дев, вероятно система виртуализации по другому не умеет и нужно использовать bridge чтобы вывести виртуалку в сеть хоста и указывать уже её адрес
иначе без использования nginx или другого прокси, могущего пробрасывать адреса не выйдет
однако, если указывать в вызове функции #content, а не #main то и с такой разметкой заработает
ну или убрать > в селекторах в функции