selectize.js icon indicating copy to clipboard operation
selectize.js copied to clipboard

Align select item event with native <select>

Open bytestream opened this issue 4 years ago • 5 comments

I did:

  • [x] Search for if my issue has already been submitted
  • [x] Make sure I'm reporting something precise that needs to be fixed
  • [x] Give my issue a descriptive and concise title
  • [x] Create a minimal working example on JsFiddle or Codepen (or gave a link to a demo on the Selectize docs)
  • [x] Indicate precise steps to reproduce in numbers and the result like below

Selectize does not respect the default behaviour of a <select> element when selecting an item. It uses a mousedown event rather than click. This deviation from the default causes issues with libraries which respect the default, for example Sweetalert2. See below issue for further context.

Steps to reproduce:

See jsfiddle @ https://github.com/sweetalert2/sweetalert2/issues/2154#issuecomment-766341081

Expected result:

Swal should not close

Actual result:

Swal closed

bytestream avatar Jan 24 '21 12:01 bytestream

If I remember correctly, reorganizing the 'mousedown' event listeners helped fix this. selectize adds multiple 'mousedown' event listeners that, when combined into a single listener, makes it easier to control event bubbling in situations like this.

These two 'mousedown' listeners: https://github.com/selectize/selectize.js/blob/master/src/selectize.js#L192 https://github.com/selectize/selectize.js/blob/master/src/selectize.js#L224

Can be combined into a single listener. Here's what it looks like in Tom Select: https://github.com/orchidjs/tom-select/blob/master/src/tom-select.ts#L325

jsfiddle example using Tom Select

Hope this helps

oyejorge avatar Jan 27 '21 16:01 oyejorge

Hey @oyejorge ! Nice work with Tom Select :heart_eyes:

Maybe it's worth joining the collaborator team and merging your project in here with the intention of releasing a new major version?

bytestream avatar Jan 27 '21 17:01 bytestream

Thanks, I'm not opposed. Reached out a while ago but felt like the best way for me to accomplish what I wanted was to work on my fork. Probably not the right place to talk about this, but let know if there's anything about the current state of Tom Select that wouldn't work or still needs work for a new major version.

oyejorge avatar Jan 27 '21 22:01 oyejorge

I'm not opposed.

@oyejorge come chat https://keybase.io/team/selectize :)

bytestream avatar Jan 28 '21 20:01 bytestream

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Apr 29 '21 01:04 github-actions[bot]