Opened 12 years ago
Closed 11 years ago
#7544 closed bug (fixed)
When event propagation is stopped, all future mousedown events are improperly considered to be 'handled'
Reported by: | brettkiefer | Owned by: | |
---|---|---|---|
Priority: | blocker | Milestone: | 1.8.15 |
Component: | ui.mouse | Version: | 1.8.14 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
In jQuery UI 1.8.14, the jquery.ui.mouse is considering events to be 'already handled' until the top-level document receives a mousedown event, so if any intermediate element stops propagation of the event (a perfectly legitimate thing to do, as I understand it), jQuery UI will consider all mousedown events to be already handled until the user clicks somewhere that allows the event to reach the document.
The issue originates from this change: https://github.com/jquery/jquery-ui/commit/9c50bdfde0260fc8412eec1c5020ed6b61558ebd
This gist illustrates the problem with no dependencies: https://gist.github.com/1078751
Repro:
- Load the gist above as a standalone page in a browser (repro'd in Chrome and Firefox)
- Drag an element
- Now drag another element
Expected: Second element also drags
Observed: After the first drag, you can't drag again until you click off of the sortable lists.
Suggested fix: In this case I would say that the cure is worse than the disease, since the checkin that caused the issue was to fix a bug that affects nested draggables in IE (#4333), and ui.mouse is a core component that probably shouldn't have this quirk. So I'd say that the checkin above should be reverted and a different approach taken.
Change History (4)
comment:1 Changed 12 years ago by
comment:3 Changed 11 years ago by
Component: | ui.core → ui.mouse |
---|---|
Milestone: | 1.9 → 1.8.15 |
Priority: | minor → blocker |
Status: | new → open |
comment:4 Changed 11 years ago by
Resolution: | → fixed |
---|---|
Status: | open → closed |
Fixed in master in 350e4ab5b854d2f6aca22d5202c03dcbf59ff4aa
Fixed in 1-8-stable in bd48ddfa94ff673cc5dfef749fe0565f1bc02d0f
Sorry, missed the jsfiddle preference, here it is in jsfiddle: http://jsfiddle.net/gDzpQ/2/