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');
