New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

option list dropdown: don't open on focus on clicks #243

Merged
merged 1 commit into from Nov 8, 2017

Conversation

Projects
None yet
2 participants
@kellyredding
Member

kellyredding commented Nov 7, 2017

The open on focus logic caused dropdown to not open when clicked
while being closed. The focus event triggers first and opens the
dropdown. Then the click event triggers and toggles the dropdown
which closes it.

This fixes the bug by adding a mousedown event. This event
triggers before focus. On mousedown, we now always set the
open on focus state var to false as this is a click and the
click will handle opening the dropdown.

@jcredding ready for review.

option list dropdown: don't open on focus on clicks
The open on focus logic caused dropdown to not open when clicked
while being closed.  The focus event triggers first and opens the
dropdown.  Then the click event triggers and toggles the dropdown
which closes it.

This fixes the bug by adding a `mousedown` event.  This event
triggers before `focus`.  On mousedown, we now always set the
open on focus state var to false as this is a click and the
click will handle opening the dropdown.
@jcredding

This comment has been minimized.

Show comment
Hide comment
@jcredding

jcredding Nov 8, 2017

Member

@kellyredding - I'm good with this 💥

Member

jcredding commented Nov 8, 2017

@kellyredding - I'm good with this 💥

@kellyredding kellyredding merged commit cc312ef into feature-romo-js Nov 8, 2017

@kellyredding kellyredding deleted the kr-open-on-focus-bug branch Nov 8, 2017

kellyredding added a commit that referenced this pull request Nov 17, 2017

version to 0.20.0
* add base js `Romo.is` method #139
* add a base js `parents` method #141
* Add `Romo.assign` util, use to merge javascript objects #140
* update how get/set attr and get/set data work for consistency #143
* Hotfix: Return parsed JSON value with `Romo._deserializeValue` 49685d7
* Hotfix: Update `romo-btn` to have no border radius by default 0593d25
* rework the parent-child elems handler to use Romo vanilla js #142
* redesign/rework the init UI elems system #144
* update base prev/next methods to take an optional selector #145
* (hotfix) cleanup minor base js stuff for vanilla js 7de627f
* update base param method to use vanilla js #146
* update base js parse z-index logic to use vanilla js #147
* (hotfix) turn on Romo custom events for event handling 352a584
* Fix binding and unbinding to events on the window/document #152
* rework romo form js to not use jquery #156
* Update `RomoAjax` component to not use jquery #148
* Update `RomoDropdown` component to not use jquery #151
* Update `RomoModal` component to not use jquery #153
* Update `RomoTooltip` component to not use jquery #154
* Update `RomoInline` component to not use jquery #157
* Update `RomoOnkey` component to not use jquery #158
* (hotfix) remove base js TODO comment about reworking for jQuery ad01def
* onkey: add a delay feature; cleanup form and opt list dropdown usage #159
* romoAjax: some cleanups to get up to modern conventions #160
* romoDropdown: cleanups to get up to modern conventions #163
* romoModal: cleanups to get up to modern conventions #165
* Update `RomoWordBoundaryFilter` component to not use jquery #164
* romoTooltip: cleanups to get up to modern conventions #167
* romoInline: cleanups to get up to modern conventions #168
* Update `RomoOptionListDropdown` component to not use jquery #162
* Update `RomoIndicatorTextInput` component to not use jquery #155
* Update `RomoCurrencyTextInput` component to not use jquery #149
* Update `RomoSortable` component to not use jquery #161
* Update `RomoDatepicker` component to not use jquery #150
* (hotfix) some minor style/convention cleanups to OptionListDropdown 780dc6c
* (hotfix) romoIndicatorTextInputs: cleanups for modern conventions c683b1a
* romoSortable: cleanups to get up to modern conventions #170
* romoDatepicker: cleanups to get up to modern conventions #171
* romoCurrencyTextInput: cleanups to get on modern conventions #172
* Update `RomoSelectedOptionsList` component to not use jquery #166
* Update `RomoSelectDropdown` component to not use jquery #169
* (hotfix) remove jquery trigger on RomoOnkey that we missed fc40526
* rework the indicator component as a RomoSpinner component #175
* add "rm" methods for removing attr/data/style #176
* Update `Romo.array` helper to cast non array-like values to arrays #177
* Update `RomoSelect` component to not use jquery #173
* Update `RomoPicker` component to not use jquery #174
* base js: make event handling error if trying to use with elem collections #180
* Update `RomoDropdownForm` component to not use jquery #178
* Update `RomoModalForm` component to not use jquery #179
* Update `RomoInlineForm` component to not use jquery #181
* base js: remove `getComputedStyle` method #183
* update select/picker related components to get up to convention #182
* update modal/dropdown/inline form components to latest conventions #184
* form: convention updates and a couple of bugfixes #185
* Cleanups from the switch to no longer use jquery #186
* add `.updateText` base js method; switch to using it in components #187
* Hotfix: Fix using `RomoDropdown` in inline, modal, and tooltip js 3ecd151
* Hotfix: Fix typo in `parseZIndex` 96f75a0
* Don't use selectors that start with `>` #188
* Update dropdown and modal to not always expect a `contentElem` #189
* Update append/prepend, before/after, and update to allow single elem #190
* Hotfix: Fix typos in select and dropdown logic 0fe8b9b
* Hotfix: Pass spinner elem when adding/removing styles ddc89fa
* Fix select displaying an empty text option as selected #191
* Fix dropdowns placing their popup elem #192
* Update `ParentChildElems.remove` to ignore non element nodes #193
* make modal/dropdown bind needed by romo-av public #194
* Bug fixes and updates to latest conventions for sortable component #195
* Update `Romo.children` and `Romo.siblings` to take optional selector #196
* Update the add/change HTML methods to error when passed non HTML #197
* Fix ` ` usage for select and picker family of components #199
* Don't set `undefined` data attrs #200
* Update option list dropdown to properly display options #198
* Fix using window height/width, use document elem client height/width #201
* Hotfix: Fix closing dropdowns ae43d45
* Hotfix: Pass submit elems when initializing a form 148271c
* Fixes and cleanups related to selects #202
* Fixes and cleanups related to modals #203
* Fixes and cleanups for tooltips #204
* Fixes and cleanups related to pickers #205
* Update `Romo.offset`, don't use `document.body` #206
* Fix event binding for the same elem, event type, and function #207
* Event propagation cleanups #208
* Hotfix: Fix `setData` calls that use `data-` in attr name 3d7b1f1
* (hotfix) jux onkey delay ms config with other onkey configs 49ca1f3
* Update dropdowns, modals, and tooltips to use `setTimeout` to place popup #209
* Fix parsing z-index from parent elems #210
* Fix `Romo.elems` working for tr, th, td, and other table related tags #211
* Fixes and cleanups related to inlines #212
* Fixes and cleanups related to datepickers #213
* update `{add|remove|toggle}Class` methods to take space-separated list #214
* (hotfix) modal: properly add "drag" class to the modal drag elem 531ece4
* (hotfix) update base `parents` meth to work with the body elem 693b1a5
* (hotfix) don't call init ui callbacks in timeouts 1dc4e1a
* selects: update to handle zero options #216
* update how dropdown and tooltip popups are placed in modals #215
* base: update `array` to work with select elems #217
* Hotfix: Fix passing strings to `Romo.array` 69d0b7a
* Fix spinner resetting HTML when stopped #219
* Simplify `setTimeout` calls, don't create extra anonymous functions #220
* Update `Romo.ajax` and `Form` to handle additional scenarios #221
* (hotfix) base: jux events related logic after DOM manipulation logic 7d2081f
* (hotfix) base: rename remove node vars in parent-child elems code 9bb437a
* Update `Romo.array`, short circuit if passed a `Node` #223
* base: update `find` to optionally take a list of parent elems #222
* base: add init elems methods #224
* base: rework elems init API #227
* Update attr, style, and class helpers to allow multiple elems #225
* Update `Romo.remove` to take multiple elems #226
* Hotfix: Fix typo for methods that now take multi elems 3166a01
* Update `on`, `off, and `trigger` to take multiple elems #228
* Update `Datepicker` to pass multi elems to `Romo.on` #229
* Update `Form` to pass multi elems to `on` and `trigger` #230
* Update dropdown, modal, and inline to pass multi elems to helpers #231
* Hotfix: Update `Sortable` to pass multi elems to `removeClass` 7e56fe4
* Update `IndicatorTextInput` to pass multi elems to romo helpers #232
* Update select/picker related components to pass multi elems to romo helpers #233
* Update init replace methods to return single elem #234
* picker/select/select-dropdown: properly bind label click events #235
* (hotfix) ajax: fix `.rmAttr` method name typo/mispelling d572036
* (hotfix) picker: update copy/paste error from select js 52c3603
* base js: fix Romo.elems to be more robust, work with TR strings #237
* currency text input: add onkey to update hidden input on key #236
* (hotfix) dropdown/modal/tooltip: place popup immediately and in timeout 3bfe7c6
* js: reorg event handler methods into event functions sections #238
* add API for defining RomoComponents #239
* (hotfix) update all components to use new RomoComponent api 17f7100
* (hotfix) properly return event function return values 5f29422
* add a RomoPopupStack helper for managing modal/dropdown/etc popups #240
* fix dropdown/tooltip placement in scrollable UI #241
* Hotfix: Handle removing elems with no parent a9f2083
* (hotfix) some cleanups after the popup stack rework 94db42f
* option list dropdown: don't open on focus on clicks #243
* Update dropdowns/modals/tooltips to set max-height then position #242
* restore option list dropdown focusing when closed by esc key #244
* Update romo ajax, don't send empty form data #245
* add `Romo.pushFn` method to formalize set timeout reactor push #246
* make add child elems to parents always run in a pushFn call #247
* (hotfix) popup stack: handle the case where esc closes no popup 612b46c
* Hotfix: Add numbers to `Romo.elems` regex for finding tag names 355babe
* (hotfix) tooltip: allow adding content with incomplete html 6936060
* Hotfix: Update inline's to not always expect a toggle elem 44abcfa
* pickers/selects: update to properly calc caret width/padding #248
* (hotfix) cleanup some Datepicker trigger event namespaces 6dab161
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment