I’m pretty sure it’s on me - but here goes:
Got this app/components/select/select_component* showing a <select /> in my forms - all is good so far.
I’m using a TailwindUI layout - meaning that I have an <input /> and a <div /> with a bunch of <div/> making up the options box.
I grab the keyup event - and the input focus event - toggling the show/hide of the options box. Easy-peasy.
Then I’d like to afford users to “tapping” on the options - should they somehow end up on my view holding a mobile device in hand…my chances are 60/40, allegedly ![]()
My first idea was to add data-action="click->select--select-component#tap" to every “option” (div) like this
<div class="hidden origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 z-50"
data-select--select-component-target="menu">
<div class="py-1" role="menu" aria-orientation="vertical" aria-labelledby="options-menu">
<% @items.each do |item| %>
<div data-select--select-component-target="item"
data-action="click->select--select-component#tap"
class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 <%= item.selected ? 'font-semibold' : '' %>" >
<%= item.title %>
</div>
<% end %>
</div>
- nothing - - nothing but silence
If I remove the ‘hidden’ class on the surrounding div - the tap method starts spitting console.log texts to my hearts delight ![]()
But why the events are not available if the component gets born into the “cold dark abyss that is ‘hidden’” and then get ‘toggled’ is not clear to me ![]()
I’d sure appreciate if someone with a lot more stimulus-fu could point me in the right direction.