]> source.dussan.org Git - gwtquery.git/commitdiff
node list in gquery should be updated each time, so the jsquery exported version...
authorManolo Carrasco <manolo@apache.org>
Thu, 3 Nov 2011 10:30:00 +0000 (10:30 +0000)
committerManolo Carrasco <manolo@apache.org>
Thu, 3 Nov 2011 10:30:00 +0000 (10:30 +0000)
gwtquery-core/src/main/java/com/google/gwt/query/client/GQuery.java
gwtquery-core/src/main/java/com/google/gwt/query/client/js/JsCache.java

index c91e63ae57f09c32b4833577301cd8c184aa2700..28646ea645e640ddca415fc48f46c6238423ae23 100644 (file)
@@ -46,6 +46,7 @@ import com.google.gwt.query.client.js.JsCache;
 import com.google.gwt.query.client.js.JsMap;\r
 import com.google.gwt.query.client.js.JsNamedArray;\r
 import com.google.gwt.query.client.js.JsNodeArray;\r
+import com.google.gwt.query.client.js.JsObjectArray;\r
 import com.google.gwt.query.client.js.JsRegexp;\r
 import com.google.gwt.query.client.js.JsUtils;\r
 import com.google.gwt.query.client.plugins.Effects;\r
@@ -3717,11 +3718,12 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
    */\r
   public GQuery setArray(NodeList<Element> list) {\r
     if (list != null) {\r
-      nodeList = list;\r
+      nodeList.<JsCache>cast().clear();\r
       int l = list.getLength();\r
       elements = new Element[l];\r
       for (int i = 0; i < l; i++) {\r
         elements[i] = list.getItem(i);\r
+        nodeList.<JsObjectArray>cast().add(list.getItem(i));\r
       }\r
     }\r
     return this;\r
index 2493055b629145e881eb71837a2b016777b4c8ad..2bc9aa4547521a0a6b22774617f3d9edd04bae70 100644 (file)
@@ -46,6 +46,14 @@ public class JsCache extends JavaScriptObject {
     delete this[name];
   }-*/;
 
+  public final native <T> void clear() /*-{
+    if (this.length) {
+      for (i = this.length - 1; i >= 0; i--) 
+        delete this[i];
+      this.length = 0;  
+    }
+  }-*/;
+
   public final native <T> boolean exists(T name) /*-{
     return !!this[name];
   }-*/;