#16167 closed defect (fixed)
[regression] dijit.form.select doesn't dropdown on android devices
Reported by: | Mark DeMichele | Owned by: | bill |
---|---|---|---|
Priority: | undecided | Milestone: | 1.8.2 |
Component: | Dijit | Version: | 1.8.0 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
There seems to be a bug with dijit.form.Select which causes android devices to not dropdown the menu. Specifically, the bug seems to originate in dijit/_HasDropDown.js.
I found the cause can monkey patched it in my application, though I'm not 100% positive, if my patch breaks older versions of android. The problem is centered around the fix that simulated a mousedown/mouseup on mobile devices.
_onDropDownMouseUp conditionally sets this._justGotMouseUp to true if it's an ios device.
_onDropdDownClick says, if has("touch") && ! this._justGotMouseUp then simulate a mousedown/mouseup.
The problem is that on the latest android devices, the _onDropDownClick get's called and _justGotMouseUp is fall so it runs this code, but it already brought up the dropdown so I subsequently closes it.
For my fix, I changed the _onDropDownClick to use has("ios"), but I wonder if a better fix would be to change _onDropDownMouseUp to use has("touch"). Not sure.
In either case, someone more knowledgeable of this code should fix it so it works on android devices.
Thanks, Mark
Change History (3)
comment:1 Changed 8 years ago by
Milestone: | tbd → 1.8.2 |
---|---|
Status: | new → assigned |
Summary: | dijit.form.select doesn't dropdown on android devices → [regression] dijit.form.select doesn't dropdown on android devices |
Thanks for catching that, looks like I messed up in [29199] by changing one has("ios") to has("touch"), but not the other one.