Repository: wicket Updated Branches: refs/heads/wicket-6.x 7d042f49d -> b4c5bd8aa
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/b4c5bd8a Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b4c5bd8a Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b4c5bd8a Branch: refs/heads/wicket-6.x Commit: b4c5bd8aa70ed19fd5d9eccf2379cff08a7c1d19 Parents: 7d042f4 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:30:09 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/b4c5bd8a/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 7bde469..7ae1bfd 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 @@ -1972,9 +1972,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); @@ -1992,7 +1995,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/b4c5bd8a/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 1a83c4c..4ed640d 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 @@ -199,8 +199,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/b4c5bd8a/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 7cfb2f1..d8e8f48 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'); @@ -477,7 +478,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', @@ -497,6 +498,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');
