我正在尝试使用jQuery为我的网站创建错误的悬停事件...

我只创建了以下列表中的所有子元素,现在也返回false,而不是链接到正确的页面...

if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
    $("ul.sf-menu li.i").click(function(e) {
        e.preventDefault();
    });
}


有人对可行的替代方法有任何想法吗?



的HTML

<ul class="sf-menu"> <li><a href="index.html">Home</a><li class="i"><a href="wedding-hire.html">Weddings</a>
            <ul>
                <li><a href="peel-suite.html">Peel Suite</a></li>
                <li><a href="the-hall.html">The Hall</a></li>
                <li><a href="the-grounds.html">The Grounds</a></li>
                <li><a href="food-and-drink.html">Food &amp; Drink</a></li>
                <li><a href="pricing.html">Pricing</a></li>
            </ul>
        </li>

最佳答案

好。没有HTML,很难说。但是,当用户单击li时,您将停止浏览器的默认行为(因此也将终止其子级,我认为这是锚/链接)。
您可以检查其是否为链接或点击锚点,并以其他方式处理它;

$("ul.sf-menu li.i").click(function(e) {
    if (e.target.nodeName!=="A"){
        e.preventDefault();
        //do your hover code
    }
    else{
        //do nothing, because the user wants the link to load
    }
});

关于javascript - iPad悬停事件jQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12797627/

10-12 06:48