You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2007/11/28 00:08:43 UTC

svn commit: r598811 - /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/wicket-event.js

Author: knopp
Date: Tue Nov 27 15:08:41 2007
New Revision: 598811

URL: http://svn.apache.org/viewvc?rev=598811&view=rev
Log:
WICKET-1186

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/wicket-event.js

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/wicket-event.js
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/wicket-event.js?rev=598811&r1=598810&r2=598811&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/wicket-event.js (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/wicket-event.js Tue Nov 27 15:08:41 2007
@@ -91,6 +91,26 @@
  */
 
 Wicket.Event = {
+	idCounter: 0,
+	
+	getId: function(element) {
+		var current = element.getAttribute("id");
+		if (typeof(current) == "string" && current.length > 0) {
+			return current;
+		} else {
+			current = "wicket-generated-id-" + Wicket.Event.idCounter++;
+			element.setAttribute("id", current);
+			return current;
+		}
+	},
+	
+	handler: function() {
+		var id = this[0];
+		var original = this[1];
+		var element = Wicket.$(id);
+		original.bind(element)();
+	},
+
 	// adds an event of specified type to the element
 	// also supports the domready event on window
 	// domready is event fired when the DOM is complete, but before loading external resources (images, ...)
@@ -102,7 +122,7 @@
 			if (element.addEventListener){
 				element.addEventListener((type == 'mousewheel' && window.gecko) ? 'DOMMouseScroll' : type, fn, false);
 			} else {
-				fn = fn.bind(element);
+				fn = Wicket.Event.handler.bind([Wicket.Event.getId(element), fn]);				
 				// Because of the fn.bind (returning a new function object)
 				// you can't detach the event first to be sure that there are no doubles :(
 				//element.detachEvent('on'+type, fn);