You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2019/07/02 07:18:30 UTC

[wicket] 01/04: WICKET-6681 addEventListener on element instead of document

This is an automated email from the ASF dual-hosted git repository.

svenmeier pushed a commit to branch feature/WICKET-6681-vanilla-wicket-ajax
in repository https://gitbox.apache.org/repos/asf/wicket.git

commit 9d87c4e2571c3feefb7859b598f42477e3af9296
Author: Sven Meier <sv...@apache.org>
AuthorDate: Mon Jul 1 12:26:29 2019 +0200

    WICKET-6681 addEventListener on element instead of document
    
    because "load" does fire on document only
---
 .../org/apache/wicket/ajax/res/js/wicket-ajax-vanilla.js  | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-vanilla.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-vanilla.js
index c25b74c..4396b0d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-vanilla.js
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-vanilla.js
@@ -2463,30 +2463,31 @@
 			 *      the event is always triggered when it reaches the selected element.
 			 */
 			add: function (element, type, fn, data, selector) {
+				var el = element;
+				if (typeof(element) === 'string') {
+					el = Wicket.$(element);
+				}
+				
 				if (type === 'domready') {
 					if (document.readyState !== 'loading') {
 						fn();
 					} else {
-						document.addEventListener('DOMContentLoaded', fn);
+						el.addEventListener('DOMContentLoaded', fn);
 					}
 				} else if (type === 'load' && isWindow(element)) {
 					if (document.readyState !== 'loading') {
 						fn();
 					} else {
-						document.addEventListener('load', fn);
+						el.addEventListener('load', fn);
 					}
 				} else {
-					var el = element;
-					if (typeof(element) === 'string') {
-						el = Wicket.$(element);
-					}
 
 					if (!el && Wicket.Log) {
 						Wicket.Log.error("Cannot bind a listener for event '%s' because the element is not in the DOM", type, element);
 					}
 
 					// FIXME: how to pass sub-selector and data to the native impl ?
-					Wicket.$(el).addEventListener(type, fn, selector, data);
+					el.addEventListener(type, fn, selector, data);
 				}
 				return element;
 			},