Repository: wicket
Updated Branches:
  refs/heads/wicket-7.x 6e91e8f91 -> ee56204b1


WICKET-6108 Closing a ModalWindow with jQuery 2.2.0 produces javascript errors

Wicket should not try to stop 'domready' events.
In case of 'domready' Wicket uses jQuery.ready(handler) instead of 
jQuery.on(eventName, handler) and this makes the difference.

See https://github.com/jquery/jquery/issues/2963


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ee56204b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ee56204b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ee56204b

Branch: refs/heads/wicket-7.x
Commit: ee56204b14b4b64eb5dab2e699c180ddc92f06c7
Parents: 6e91e8f
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Wed Mar 2 17:30:09 2016 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Wed Mar 2 17:31:58 2016 +0100

----------------------------------------------------------------------
 .../apache/wicket/ajax/res/js/wicket-ajax-jquery.js    | 13 +++++++++----
 .../apache/wicket/ajax/res/js/wicket-event-jquery.js   |  3 +--
 wicket-core/src/test/js/ajax.js                        |  6 ++++--
 3 files changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/ee56204b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js 
b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
index aff5556..55e6e61 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
+++ 
b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
@@ -1955,9 +1955,12 @@
                                        Wicket.Event.add(attrs.c, evt, function 
(jqEvent, data) {
                                                var call = new 
Wicket.Ajax.Call();
                                                var attributes = 
jQuery.extend({}, attrs);
-                                               attributes.event = 
Wicket.Event.fix(jqEvent);
-                                               if (data) {
-                                                       
attributes.event.extraData = data;
+
+                                               if (evt !== "domready") {
+                                                       attributes.event = 
Wicket.Event.fix(jqEvent);
+                                                       if (data) {
+                                                               
attributes.event.extraData = data;
+                                                       }
                                                }
 
                                                
call._executeHandlers(attributes.ih, attributes);
@@ -1975,7 +1978,9 @@
                                                else {
                                                        call.ajax(attributes);
                                                }
-                                               
Wicket.Ajax._handleEventCancelation(attributes);
+                                               if (evt !== "domready") {
+                                                       
Wicket.Ajax._handleEventCancelation(attributes);
+                                               }
                                        }, null, attrs.sel);
                                });
                        },

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee56204b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-event-jquery.js
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-event-jquery.js
 
b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-event-jquery.js
index 7e0322c..9fb0aa2 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-event-jquery.js
+++ 
b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-event-jquery.js
@@ -177,8 +177,7 @@
                         * If no event is given as argument (IE), window.event 
is returned.
                         */
                        fix: function (evt) {
-                               var evnt = evt || window.event;
-                               return jQuery.event.fix(evnt);
+                               return evt || jQuery.event.fix(window.event);
                        },
 
                        fire: function (element, event) {

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee56204b/wicket-core/src/test/js/ajax.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/js/ajax.js b/wicket-core/src/test/js/ajax.js
index c66ef6d..bdd772f 100644
--- a/wicket-core/src/test/js/ajax.js
+++ b/wicket-core/src/test/js/ajax.js
@@ -435,7 +435,7 @@ jQuery(document).ready(function() {
                 */
                asyncTest('verify default attributes.', function () {
 
-                       expect(25);
+                       expect(26);
 
                        var attrs = {
                                u: 'data/ajax/nonWicketResponse.json',
@@ -445,6 +445,7 @@ jQuery(document).ready(function() {
                                                equal(textStatus, 
"parsererror", "textStatus");
                                                equal(attributes.u, attrs.u, 
"url");
                                                deepEqual(attributes.e, [ 
"domready" ], "events");
+                                               equal(attributes.event, null, 
"No event for 'domready'");
                                                equal(attributes.ch, '0|s', 
'channel');
                                                equal(attributes.dt, 'xml', 
'data type');
                                                equal(attributes.wr, true, 
'wicket ajax response');
@@ -476,7 +477,7 @@ jQuery(document).ready(function() {
 
                asyncTest('verify arguments to global listeners. Success 
scenario.', function () {
 
-                       expect(13);
+                       expect(14);
 
                        var attrs = {
                                u: 'data/ajax/nonWicketResponse.json',
@@ -496,6 +497,7 @@ jQuery(document).ready(function() {
                                        two: '2',
                                        three: true
                                };
+                               ok(attributes.event instanceof jQuery.Event, 
"There must be an event for non-'domready' events");
                                deepEqual(data, expected, 'Success: data');
                                equal('success', textStatus, 'Success: 
textStatus');
                                equal(attrs.u, attributes.u, 'Success: attrs');

Reply via email to