Страница 1 из 1

js & css на сцене

Добавлено: Чт апр 14, 2022 11:05 pm
Svetлая
Пытаюсь скрипт отладить (онклик на чекбоксах). Глюки не понятные. То работает, то нет.
Потом вообще сломался.
Удалила весь js (обработку), оставила только html (вывод)
запускаю страницу, а там чекбоксы криво работают :shock:
получается, пока правлю код, где-то всё написанное до какого-то момента кидается туда в кучу.
и потом эта каша показывает?
Подскажите, где что надо сделать. Хотя бы временное решение.
Спасибо.

П.С.
где искать созданные сцены? Иногда в логах пишутся ошибки,
/popup/scenes/7.html - Uncaught TypeError: Cannot set properties of null (setting 'onclick'); line: 2416

Код: Выделить всё

Linux mjd 5.4.0-107-generic #121-Ubuntu x86_64 x86_64 x86_64 GNU/Linux
ALPHA_5DD5A83
Linux mjd 4.15.0-175-generic #184-Ubuntu x86_64 x86_64 x86_64 GNU/Linux
MASTER_E453668

Re: js & css на сцене

Добавлено: Чт апр 14, 2022 11:22 pm
xor
Svetлая писал(а):
Чт апр 14, 2022 11:05 pm
где искать созданные сцены? Иногда в логах пишутся ошибки,
в таблицах scenes, elements, elm_states, модуле одноименном, темплейтах...
там черт ногу сломит, если ковыряться( из-за этого домашними страницами предпочитаю обходиться.
зы. полез смотреть у себя - куча каких-то потеряшек в элементах болтается от старых экспериментов(

Re: js & css на сцене

Добавлено: Пт апр 15, 2022 6:40 am
Svetлая
Капец! ))
Спасибо!

Re: js & css на сцене

Добавлено: Ср апр 20, 2022 11:18 am
Svetлая
Помогите правильно написать условие)

Алгоритм прост)) Есть элемент temp.temp. Данные вносятся разными способами, включая прямой неконтролируемый ввод. Собственно из-за него и требуется автоматическая корректировка.
Надо что бы при вводе числа больше, скажем 90, автоматически исправляло на 90.
Ниже рабочий скрипт который позволяет вводить пошагово.
Как добавить правильно условие которое будет следить за переполнением?
Условие типа if ($a < $b) $a=90; не работает. Поменять местами переменные, не работает.

Код: Выделить всё

 var c = document.querySelector('#changeTemp2');
  if (%temp.temp% != 90){
	c.onclick = function() {
	var s = %temp.temp% + 1;
  	setGlobal("temp.temp",s);
 }
Строка запроса данных вручную

Код: Выделить всё

<button class="one" type="button" onclick="this.nextElementSibling.stepDown()" id="changeTemp1" >-</button>
<input type="number" min="-30" max="90" value="%temp_temp%"  class="one" onchange="changeTemp(this.value)" >
<button class="one" type="button" onclick="this.previousElementSibling.stepUp()" id="changeTemp2">+</button>
Спасибо!)

Re: js & css на сцене

Добавлено: Ср апр 20, 2022 11:47 pm
homester
Svetлая писал(а):
Ср апр 20, 2022 11:18 am
Помогите правильно написать условие)
Примерно такую-же задачу решал.
Проблема -, JS не понимает %temp.temp%. Для себя нашел два выхода:
1. Передавать в функцию значение %temp.temp% (но не всегда это удобно)
2. В функции найти значение %temp.temp%

Код: Выделить всё

var value = document.getElementById("ЗДЕСЬ ID %temp.temp%").value;
value++
if (value>90) {value=90}
ajaxSetGlobal('temp.temp',value)

Re: js & css на сцене

Добавлено: Чт апр 21, 2022 12:09 am
Svetлая
с передачей данных в обе стороны проблем нету. Всё ходит, всё принимается и передается.

Весь предоставленный скрипт на сцене работает.

стоит встроить в него проверку...

Код: Выделить всё

 var c = document.querySelector('#changeTemp2');
  if (%temp.temp% != 90){
	c.onclick = function() {
	var s = %temp.temp% + 1;
	  if (s < 30) s = 30;
  	setGlobal("temp.temp",s);
 }
И всё ломается.
встроила if (s < 30) s = 30;

Re: js & css на сцене

Добавлено: Чт апр 21, 2022 7:15 pm
fandaymon
Svetлая писал(а):
Чт апр 21, 2022 12:09 am
с передачей данных в обе стороны проблем нету. Всё ходит, всё принимается и передается.

Весь предоставленный скрипт на сцене работает.

стоит встроить в него проверку...

Код: Выделить всё

 var c = document.querySelector('#changeTemp2');
  if (%temp.temp% != 90){
	c.onclick = function() {
	var s = %temp.temp% + 1;
	  if (s < 30) s = 30;
  	setGlobal("temp.temp",s);
 }
И всё ломается.
встроила if (s < 30) s = 30;
Не очень знаю джаваскрипт, но по-моему тут не хватает закрывающей фигурной скобки у функции

Re: js & css на сцене

Добавлено: Пт апр 22, 2022 12:10 pm
JackOfShadows
Svetлая писал(а):
Чт апр 21, 2022 12:09 am
с передачей данных в обе стороны проблем нету. Всё ходит, всё принимается и передается.

Весь предоставленный скрипт на сцене работает.

стоит встроить в него проверку...

Код: Выделить всё

 var c = document.querySelector('#changeTemp2');
  if (%temp.temp% != 90){
	c.onclick = function() {
	var s = %temp.temp% + 1;
	  if (s < 30) s = 30;
  	setGlobal("temp.temp",s);
 }
И всё ломается.
встроила if (s < 30) s = 30;
Про скобку сказали уже, но Вы говорите, что работает до добавления строки.

В консоли разработчика есть ошибки?

Re: js & css на сцене

Добавлено: Пн апр 25, 2022 8:04 am
Svetлая
Ошибок нет. Дело не в скобке. Строку привела как грубый пример. Проблема в том, что в редакторе сцены, по не понятной причине не работает любое выражение "А меньше Б" или работает с непонятной избирательной логикой.
Пробовала вставлять готовые рабочие примеры, из которых почти все не работали.

И второе, применяемые стили ( <style>) не завершают работу по </style>, передавая цвет, размер... на глобальном уровне.
+ ещё один глобальный косяк - использование в css параметров начальной точки. Если применить width и height с параметром vw или vh,
рвёт всю сцену. Данный параметр ставит точку смещения для ВСЕХ объектов.

Думаю данный пост больше подходит как багтрек для разработчиков. Надеюсь мимо не пройдут и всё таки исправят косяки, так как они очень сильно ограничивают возможности.

Писать отдельные "страницы", не используя редактор сцен, это кривой костыль.

П.С.
Если я не права, объясните как правильно.

Re: js & css на сцене

Добавлено: Пн апр 25, 2022 8:26 am
JackOfShadows
Svetлая писал(а):
Пн апр 25, 2022 8:04 am
Думаю данный пост больше подходит как багтрек для разработчиков. Надеюсь мимо не пройдут и всё таки исправят косяки, так как они очень сильно ограничивают возможности.
Баги/предложения, размещенные не в Connect (на форуме, в личке форума или Connect, в емейл, в Телеграм (в личке или группе) и др.) - игнорируются/не отслеживаются.