diff options
-rw-r--r-- | tests/visual/mouse/mouse_ticket_6946.html | 67 | ||||
-rw-r--r-- | ui/jquery.ui.mouse.js | 5 |
2 files changed, 72 insertions, 0 deletions
diff --git a/tests/visual/mouse/mouse_ticket_6946.html b/tests/visual/mouse/mouse_ticket_6946.html new file mode 100644 index 000000000..0851d4d19 --- /dev/null +++ b/tests/visual/mouse/mouse_ticket_6946.html @@ -0,0 +1,67 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset=utf-8 /> + <title>Test for Issue #6946</title> + <link rel="stylesheet" href="../all.css" type="text/css"> + <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css" /> + <script type="text/javascript" src="../../../jquery-1.4.4.js"></script> + <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script> + <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script> + <script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script> + <script type="text/javascript" src="../../../ui/jquery.ui.sortable.js"></script> + <style type="text/css" media="screen"> + + body { + background: white; + font-size: 90%; + } + .error { + color: #f55; + font-style: italic; + } + #sortable div:hover { + cursor: move; + } + + </style> +</head> +<body> + <h1>Test for Issue #6946</h1> + <p>Use the following list to test the steps listed below:</p> + <div id="sortable"> + <div>One</div> + <div>Two</div> + <div>Three</div> + </div> + <div id="events"></div> + <h2>Expected</h2> + <ol> + <li>Drag an item to a new position in the list and release.</li> + <li>The click event should be received (appropriately suppressed by jQuery UI).</li> + <li>Click the same item.</li> + <li>The click event should be received.</li> + <li>Click the same item again.</li> + <li>The click event should be received.</li> + </ol> + <h2>Experienced (Gecko/Opera)</h2> + <ol> + <li>Drag an item to a new position in the list and release.</li> + <li>The click event is not received <em>(never sent by browser)</em>.</li> + <li>Click the same item.</li> + <li class="error">The click event is not received (erroneously suppressed by jQuery UI).</li> + <li>Click the same item again.</li> + <li>The click event is finally received.</li> + </ol> + <script type="text/javascript"> + + $(function () { + $('#sortable').sortable(); + $('#sortable').bind('click', function () { + $('#events').append('Click event received!<br />'); + }); + }); + + </script> +</body> +</html>
\ No newline at end of file diff --git a/ui/jquery.ui.mouse.js b/ui/jquery.ui.mouse.js index f5e8b58c0..bfe4a7578 100644 --- a/ui/jquery.ui.mouse.js +++ b/ui/jquery.ui.mouse.js @@ -75,6 +75,11 @@ $.widget("ui.mouse", { } } + // Click event may never have fired (Gecko & Opera) + if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) { + $.removeData(event.target, this.widgetName + '.preventClickEvent'); + } + // these delegates are required to keep context this._mouseMoveDelegate = function(event) { return self._mouseMove(event); |