aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/visual/mouse/mouse_ticket_6946.html67
-rw-r--r--ui/jquery.ui.mouse.js5
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);