Skip to content

Commit d870e95

Browse files
author
zhangxinxu
committed
zepto touch event compatible
zepto touch event compatible
1 parent 910c056 commit d870e95

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/mobilebone.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,26 @@
686686
if ($ && $.fn && $.fn.tap) eventName = "tap";
687687

688688
if (this.captureLink == true) {
689-
document.addEventListener(eventName, this.handleTapEvent);
689+
document.addEventListener(eventName, this.handleTapEvent, true);
690+
if (eventName == "tap") {
691+
// zepto tap event.preventDefault can't prevent default click-events
692+
document.addEventListener("click", function(event) {
693+
var target = event.target;
694+
if (!target) return;
695+
if (target.tagName.toLowerCase() != "a" && !(target = target.getParentElementByTag("a"))) {
696+
return;
697+
}
698+
var ajax = target.getAttribute("data-ajax"), href = target.href;
699+
// if not ajax request
700+
if (target.getAttribute("data-rel") == "external"
701+
|| ajax == "false"
702+
|| (href.split("/")[0] !== location.href.split("/")[0] && ajax != "true")
703+
|| (Mobilebone.captureLink == false && ajax != "true")
704+
) return;
705+
706+
event.preventDefault();
707+
});
708+
}
690709
}
691710
// change flag-var for avoiding repeat init
692711
hasInited = true;
@@ -698,7 +717,6 @@
698717
Mobilebone.handleTapEvent = function(event) {
699718
// get target and href
700719
var target = event.target || event.touches[0], href = target.href;
701-
702720
if ((!href || /a/i.test(target.tagName) == false) && (target = target.getParentElementByTag("a"))) {
703721
href = target.href;
704722
}

0 commit comments

Comments
 (0)