Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3  След.
 Re: Неработающий код (HTML + JS)
Аватара пользователя
Connector в сообщении #1462498 писал(а):
А здесь последний слеш был лишний.

Вот, именно в этом дело! :-)

 Re: Неработающий код (HTML + JS)
Connector,
Используется синтаксис Javascript
let width = 500;
let height = 420;
let draw = document.createElementNS("http://www.w3.org/2000/svg", "svg");
draw.setAttributeNS(null, "viewBox", "0 0 " + width + " " + height);
draw.setAttributeNS(null, "width", width);
draw.setAttributeNS(null, "height", height);
game.append(draw);
let tail = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
tail.setAttribute('points', '10,10 100,10 55,100');
tail.setAttribute('fill', 'orange');
tail.setAttribute('stroke', 'black');
tail.onclick = function(event) {
        alert('1');
};
draw.append(tail);
тоже не работает.

 Re: Неработающий код (HTML + JS)
В таком случае вынужден констатировать, что код не воспроизводит проблему: у меня всё работает.
Ссылка на CodePen.

Возможно, ошибка где-то в остальном коде.

 Re: Неработающий код (HTML + JS)
Хм, так оно тоже работает. В моем коде потом дальше идет строчка game.innerHTML += '<br>';, и при добавлении ее в ваш CodePen оно ломается.

 Re: Неработающий код (HTML + JS)
Аватара пользователя
kotenok gav в сообщении #1462754 писал(а):
потом дальше идет строчка game.innerHTML += '<br>';,

Это Вы очень плохо придумали...

 Re: Неработающий код (HTML + JS)
https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML писал(а):
It does not reparse the element it is being used on, and thus it does not corrupt the existing elements inside that element.

Теперь ясно, кажется. Обычный innerHTML стирает обработчики.

 Re: Неработающий код (HTML + JS)
kotenok gav,
Код:
innerHTML+=
это очень коварная штука — полностью перезаписывает содержимое элемента. Используйте метод insertAdjacentHTML.

-- 14.05.2020, 20:04 --

UPD. Вот именно.

 Re: Неработающий код (HTML + JS)
Уррррра! Теперь работает!!
Geen, Connector, спасибо!

 Re: Неработающий код (HTML + JS)
Аватара пользователя
kotenok gav в сообщении #1462773 писал(а):
https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML писал(а):
It does not reparse the element it is being used on, and thus it does not corrupt the existing elements inside that element.

Теперь ясно, кажется. Обычный innerHTML стирает обработчики.

Вы навесили обработчик через JS и нет способа отобразить это в виде HTML атрибутов.

-- 14.05.2020, 20:11 --

вообще, лучше избегать использовать innerHTML и аналоги без нужды. Нужда может быть когда Вы хотите вставить очень большой кусок HTML, например, большую таблицу заполнили или список - в этом случае будет быстрее за счёт того, что DOM дерево не будет перестраиваться. А иначе больше времени уйдёт на парсинг. Кроме того, через HTML не получится эффективно навесить обработчики - на каждый аттрибут с кодом создаётся своя уникальная функция из указанной строки.

 Re: Неработающий код (HTML + JS)
Вот еще вопрос возник:
https://jsfiddle.net/nbd1wkfv/ (не работает даже при замене двух строчек перед комментарием на закомментированные)
При нажатии на квадрат в месте должен появляться кружок color-picker-square-picker, но не появляется.

 Re: Неработающий код (HTML + JS)
Аватара пользователя
А какого размера у Вас picker?

 Re: Неработающий код (HTML + JS)
Кружок - 7 на 7 пикселей. Сам квадрат - 100 на 100.

 Re: Неработающий код (HTML + JS)
Аватара пользователя
Что именно 100 на 100?

 Re: Неработающий код (HTML + JS)
Пикселей.

 Re: Неработающий код (HTML + JS)
Аватара пользователя
Так, прошу прощения - не то увидел в коде...

 [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group