iOS Safari Mobile:为什么Safari很快会显示链接 - 而不是取消活动?

时间:2012-07-30 18:02:32

标签: javascript html ios mobile-safari

我有类似的JavaScript:

var nav     = $('#nav_header a');
var current = null;

nav.click( function(event) {
    var key = nav.index($(event.target) );
    if (current != key) {
        // do some fancy stuff
    }
    // works fine on desktop browsers
    event.preventDefault();
    // needed on iOS
    event.stopPropagation();
}

使用这个简短的HTML:

<nav>
    <ol id="nav_header" class="nav_header">
        <li><a href="Link 1">Link 1</a></li>
        <li><a href="Link 1">Link 2</a></li>
    </ol>
</nav>

当我只使用event.preventDefault();时,它适用于所有桌面浏览器。但是在iOS上(在5.1上测试)它会在短时间内显示地址栏。当我添加event.stopPropagation();时,它也会停止显示地址栏。但是:它仍然会在一瞬间更改地址,但不会加载链接的页面(因为事件被取消)。为什么会发生这种情况,我该如何预防呢?我也尝试了return false;,但它(当然,正如预期的那样)与event.stopPropagation();相同。

0 个答案:

没有答案