Mobile Safari preventDefault()不起作用? Android运行正常

我想要实现的目标在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的远程调试器允许我设置断点,但是一旦我介入或接上它就跟随锚标记。

我已经完全删除了锚标签中的所有事件和href,但仍然无效。

您可能希望在StackOverflow上检查有关event.preventDefault的此主题并返回false:

event.preventDefault()与return false

基本上:“jQuery的preventDefault不会阻止其他人执行。这就是stopImmediatePropagation的用途。”

“在jQuery事件处理程序中返回false实际上与在传递的jQuery.Event对象上调用e.preventDefault和e.stopPropagation相同。

e.preventDefault()将阻止发生默认事件,e.stopPropagation()将阻止事件冒泡并返回false将同时执行。 请注意,此行为与普通(非jQuery)事件处理程序不同,其中,值得注意的是,return false不会阻止事件冒泡。 “