import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NativeEvent;
+import com.google.gwt.dom.client.Node;
import com.google.gwt.query.client.Function;
import com.google.gwt.query.client.GQuery;
import com.google.gwt.query.client.plugins.events.EventsListener;
}
});
}
+
+ /**
+ * Don't apply events on text and comment nodes !!
+ */
+ private static boolean isEventCapable(Node n){
+ return n.getNodeType() != 3 && n.getNodeType() != 8;
+ }
public Events(GQuery gq) {
super(gq);
*/
public Events bind(int eventbits, Object data, Function... funcs) {
for (Element e : elements()) {
- EventsListener.getInstance(e).bind(eventbits, data, funcs);
+ if (isEventCapable(e)){
+ EventsListener.getInstance(e).bind(eventbits, data, funcs);
+ }
}
return this;
}
public Events bind(int eventbits, String namespace, Object data,
Function... funcs) {
for (Element e : elements()) {
- EventsListener.getInstance(e).bind(eventbits, namespace, data, funcs);
+ if (isEventCapable(e)){
+ EventsListener.getInstance(e).bind(eventbits, namespace, data, funcs);
+ }
}
return this;
}
*/
public Events bind(String event, Object data, Function... funcs) {
for (Element e : elements()) {
- EventsListener.getInstance(e).bind(event, data, funcs);
+ if (isEventCapable(e)){
+ EventsListener.getInstance(e).bind(event, data, funcs);
+ }
}
return this;
}
*/
public Events one(int eventbits, final Object data, final Function f) {
for (Element e : elements()) {
- EventsListener.getInstance(e).bind(eventbits, data, f, 1);
+ if (isEventCapable(e)){
+ EventsListener.getInstance(e).bind(eventbits, data, f, 1);
+ }
}
return this;
}
*/
public Events unbind(int eventbits) {
for (Element e : elements()) {
- EventsListener.getInstance(e).unbind(eventbits);
+ if (isEventCapable(e)){
+ EventsListener.getInstance(e).unbind(eventbits);
+ }
}
return this;
}
*/
public Events unbind(int eventbits, String name) {
for (Element e : elements()) {
- EventsListener.getInstance(e).unbind(eventbits, name);
+ if (isEventCapable(e)){
+ EventsListener.getInstance(e).unbind(eventbits, name);
+ }
}
return this;
}
*/
public Events unbind(String name) {
for (Element e : elements()) {
- EventsListener.getInstance(e).unbind(name);
+ if (isEventCapable(e)){
+ EventsListener.getInstance(e).unbind(name);
+ }
}
return this;
}
private void dispatchEvent(NativeEvent evt) {
for (Element e : elements()) {
- e.dispatchEvent(evt);
+ if (isEventCapable(e)){
+ e.dispatchEvent(evt);
+ }
}
}
public Events undelegate(){
for (Element e : elements()) {
- EventsListener.getInstance(e).cleanEventDelegation();
+ if (isEventCapable(e)){
+ EventsListener.getInstance(e).cleanEventDelegation();
+ }
}
return this;
}
+
+
}