Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Почему отображение элемента через JS некорректно работает в Safari на IOS? (https://javascript.ru/forum/css-html-browser/85298-pochemu-otobrazhenie-ehlementa-cherez-js-nekorrektno-rabotaet-v-safari-na-ios.html)

A750 15.06.2023 16:10

Цитата:

Сообщение от ksa (Сообщение 552391)
Первый в жизни код выглядит примерно так

alert('Привет мир')


А ты уже куролесишь по взрослому! :nono:

=))))

Да, в начале скрипта это было прописано, даже и осталось там)

voraa 15.06.2023 17:22

Какая версия сафари?
У вас a - случайное число от 1000 до 1019. Но не видно элементов с такими id

A750 15.06.2023 17:31

На том, что под рукой - 14.8.1
На более свежем - сейчас не знаю, но там то же самое

Элементы с таким id, конечно же есть)
Их видно в html
Ну и на компьютере всё работает...

voraa 15.06.2023 17:59

Все равно, какая то странная обработка кликов.
Когда будет клик по guessitem сработает сначала обработчик, повешанный на него, а потом снова сработает обработчик клика, повешанный на window. На guessitem повесится новый обработчик, и следующий раз при клике на нем сработают оба.

A750 15.06.2023 18:08

Цитата:

Сообщение от voraa (Сообщение 552395)
Все равно, какая то странная обработка кликов.
Когда будет клик по guessitem сработает сначала обработчик, повешанный на него, а потом снова сработает обработчик клика, повешанный на window. На guessitem повесится новый обработчик, и следующий раз при клике на нем сработают оба.

До этого я ещё не дошёл, посмотрю...
Пока всё выглядит корректно и работает. Но только на компьютере)

A750 15.06.2023 19:12

Дело, похоже, вообще не в js
Я сделал по-умолчанию всегда видимыми эти объекты - на телефоне они всё-равно не отображаются

voraa 15.06.2023 19:24

Я вообще не понимаю, как это у вас работает
Возьмем строки 17- 23. Когда первый раз выполняется. Допустим клик по элементу с id "1"

let attr = itemimg.getAttribute('id'); // "1"
arropen.unshift(`${attr}`); // ["1"]
if (arropen[1] != `${attr}`) { arropen[1] === undefined условие выполняется
document.getElementById(`${arropen[1]}`).style.cssText = 'display: block;'; // getElementById("undefined") вернет null и будет ошибка

(Если attr строка, то зачем писать `${attr}`, когда можно просто attr?)

И, кстати, ошибка в css. Строка 46
nbox-shadow: 3px 3px 3px red;

A750 15.06.2023 20:20

Спасибо за внимание к коду, но прошу прощения за время, которое вы потратили на css - это не ошибка - это пометка, данная строка закомментирована)
В процессе поиска причины, я комменчу много строк и ставлю пометки.


Возвращаясь к сабжу:
Выяснил опытным путём, что дело совершенно не JS.
Элемент, который я хочу отобразить, на самом деле пустой - там есть только фон, созданный через css. Так вот пустой элемент только с фоном мобильное устройство не отображает!!! Как так-то?...:blink:

voraa 15.06.2023 20:25

Цитата:

Сообщение от A750
это пометка, данная строка закомментирована)

А так можно было !!!? (обычно в css комментируют /* */)
Цитата:

Сообщение от A750
Выяснил опытным путём, что дело совершенно не JS.

Непонятно только, как это работает в винде.
В консоле нет ошибок?

A750 15.06.2023 20:32

Цитата:

Сообщение от voraa (Сообщение 552402)
А так можно было !!!? (обычно в css комментируют /* */)

Я в scss пишу)

Цитата:

Сообщение от voraa (Сообщение 552402)
Непонятно только, как это работает в винде.
В консоле нет ошибок?

Есть, конечно
Те, о которых вы говорите
Но на работу не влияют - с каждым нажатием запускается новый цикл - и там ошибки уже нет, тк массив вынесен за пределы функции, и его содержимое сохраняется


Часовой пояс GMT +3, время: 03:04.