我想要完成的工作在 Chrome 上完美运行——Android 4.1
但在 iOS 上非常失败。
$(document).on('mouseenter touchend','[id*=mmlink]', function (e) {
var $btn = $(this);
var href = $btn.attr('href');
var count = ($btn.data('click_count') || 0) + 1;
$btn.data('click_count', count);
if (count == 1) {
$btn.click(function(v) {
v.preventDefault();
});
} else {
document.location.href = href;
}
});
我使用 milonic 菜单生成子菜单。我需要使用
.on()
来选择子菜单。测试页面:http://www.wolfbariatrics.com/mmtest/index.htm
我在想还有另一个事件只发生在 iOS 中。 safari 的远程调试器允许我设置断点,但是一旦我进入或越过它,就会跟随 anchor 标记。
我已经完全从 anchor 标记和 href 中删除了所有事件,但仍然没有任何效果。
最佳答案
您可能想在 StackOverflow 上查看有关 event.preventDefault 的此主题并返回 false:
event.preventDefault() vs. return false
基本上:
“jQuery 的 preventDefault 不会阻止其他处理程序的执行。这就是 stopImmediatePropagation 的用途。”
和
“从 jQuery 事件处理程序中返回 false 与在传递的 jQuery.Event 对象上调用 e.preventDefault 和 e.stopPropagation 实际上相同。
e.preventDefault() 将阻止默认事件发生, e.stopPropagation() 将阻止事件冒泡,返回 false 将两者兼而有之。请注意,此行为与普通(非 jQuery)事件处理程序不同,其中,值得注意的是, return false 不会阻止事件冒泡。
”
关于jquery - Mobile Safari preventDefault() 不起作用?安卓运行良好,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12696459/