4

我想要完成的工作在 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中删除了所有事件,但仍然没有任何效果。

4

1 回答 1

3

您可能想在 StackOverflow 上查看有关 event.preventDefault 的主题并返回 false:

event.preventDefault() 与返回 false

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

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

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

于 2012-10-02T19:23:32.843 回答