diff --git a/js/ext/angular/test/clickTests.html b/js/ext/angular/test/clickTests.html
index f5137df082..932bf533e1 100644
--- a/js/ext/angular/test/clickTests.html
+++ b/js/ext/angular/test/clickTests.html
@@ -68,8 +68,13 @@
-
+
+
+
+
+
@@ -241,7 +246,7 @@
// console.debug('mousemove', 'clientX: ' + event.clientX, 'clientY: ' + event.clientY);
// });
document.addEventListener('click', function(event){
- console.debug('click', 'clientX: ' + event.clientX, 'clientY: ' + event.clientY);
+ console.debug('click', 'clientX: ' + event.clientX, 'clientY: ' + event.clientY, event.target.tagName);
});
document.getElementById('clear').addEventListener('click', function(){
setTimeout(clearMsgs, 200);
diff --git a/js/utils/poly.js b/js/utils/poly.js
index 3b9c9dafe0..0d138c23a6 100644
--- a/js/utils/poly.js
+++ b/js/utils/poly.js
@@ -18,8 +18,11 @@
})();
// polyfill use to simulate native "tap"
- ionic.tapElement = function(ele, e) {
+ ionic.tapElement = function(target, e) {
// simulate a normal click by running the element's click method then focus on it
+
+ var ele = target.control || target;
+
if(ele.disabled) return;
console.debug('tapElement', ele.tagName, ele.className);
@@ -46,6 +49,11 @@
if( !isRecentTap(e) ) {
recordCoordinates(e);
}
+
+ if(target.control) {
+ console.debug('tapElement, target.control, stop');
+ return stopEvent(e);
+ }
};
function tapPolyfill(orgEvent) {
@@ -66,16 +74,11 @@
if( ele.tagName === "INPUT" ||
ele.tagName === "A" ||
ele.tagName === "BUTTON" ||
+ ele.tagName === "LABEL" ||
ele.tagName === "TEXTAREA" ||
ele.tagName === "SELECT" ) {
return ionic.tapElement(ele, e);
-
- } else if( ele.tagName === "LABEL" ) {
- // check if the tapped label has an input associated to it
- if(ele.control) {
- return ionic.tapElement(ele.control, e);
- }
}
ele = ele.parentElement;
}
@@ -158,13 +161,9 @@
function removeClickPrevent(e) {
setTimeout(function(){
- if(e.target && e.target.control && e.target.control.labelLastTap) {
- e.target.control.labelLastTap = null;
- }
- var c = isRecentTap(e);
- if(c) delete tapCoordinates[c.id];
+ var tap = isRecentTap(e);
+ if(tap) delete tapCoordinates[tap.id];
}, REMOVE_PREVENT_DELAY);
- return stopEvent(e);
}
function stopEvent(e){