Size: a a a

2021 December 01

А

Александр in RubyRush.ru
Есть product cards. У каждой карточки есть свой data-[controller_name]-target. Тоесть, на странице есть коллекция из 10 карточек и 10 target с одинаковым именем. На каждую карточку прицеплен stimulus action -> double click. При обработке этого события не могу конкретизировать target, так как событие типа: this target выдает первый target из коллекции. Как правильно определить target цели?
источник

А

Александр in RubyRush.ru
Самое неприятное что double click выдает event.target каждого html  элемента card, в зависимости от того где произошло событие двойного клика. По логике надо либо вешать на каждый html элемент data-id и по нему из коллекции targets вытаскивать искомый target либо как-то заставить всплыть событие до родительского div где есть уже dom_id объекта. Какие есть мысли?
источник

А

Александр in RubyRush.ru
Смысл этой затеи в том что пользователь делает двойной клик на карточке и проваливается в экшен show для этого объекта. Отлавливает двойной клик Stimulus контроллер, который после клика ищет target скрытой кнопки со ссылкой на show объекта и кликает ее.
источник

Э

Эдем in RubyRush.ru
Это точно Руби?
источник

Э

Эдем in RubyRush.ru
Откуда там инкремент?
источник

ST

Stanislav Timanov in RubyRush.ru
только сейчас заметил ответ, но уже сам до тугодумил

    <%# Автор вопроса %>
   <div class="question-author">
     <% if question.author_id.present? %>
       <%= link_to question.author.username, user_path(question.author) %>
     <% else %>
       <%= "Неизвестный автор" %>
     <% end %>
Но всё равно, конечно ,спасибо
источник

Э

Эдем in RubyRush.ru
id повесить некий?
источник

AT

An Ton in RubyRush.ru
Да и правда там тоже ошибка должна быть
источник

Э

Эдем in RubyRush.ru
+= 1
источник

AT

An Ton in RubyRush.ru
Ага
источник

А

Александр in RubyRush.ru
Писал - надо вешать data-id на каждый html элемент карточки. Может есть другой способ чтобы не захламлять разметку?
источник

Э

Эдем in RubyRush.ru
Можно захламить, ничего страшного
источник

А

Александр in RubyRush.ru
Ок. Если другого решения нет, будем захламлять
источник

AT

An Ton in RubyRush.ru
Объясните пожалуйста, в каком случае стригерится format.js условие?
Без него все хорошо работает. JS отрабатывает нормально
источник

Э

Эдем in RubyRush.ru
Если XHR-запрос придёт
источник

AT

An Ton in RubyRush.ru
Он приходит. Смотрю в девтулсе. Есть XHR. Но все работает даже если закомментить строку format.js
источник

AT

An Ton in RubyRush.ru
Это происходит когда я кнопочку жму.
источник

А

Александр in RubyRush.ru
Все равно, это некрасивый вариант. Накидал data-id на все node элементы, получилась целая куча( Приходится не только в div с объектами добавлять, но даже на <hr> и div которые отвечают только за расположение на странице вложенных div. Учитывая что в cards есть rich text с картинками, к которым проблематично динамически  прикрутить data-id, то парсинг все этого превращается в простыню... Неужели нет способа отловить всплывающее событие в родительском div cards?
источник

А

Александр in RubyRush.ru
Нашел! Надо поменять event.target на event.currentTarget. После этого любое событие можно отловить как всплывающее событие в необходимом месте. Лишние dataset можно удалить)
источник

VV

Vadim Venediktov in RubyRush.ru
Я боюсь, у вас инфантильные представления о том, как можно общаться в публичном чате :)
источник