如何在jQuery中将“悬停效果”转换为“单击效果”?

时间:2012-03-11 18:44:59

标签: jquery html-lists

我知道这听起来怎么样但是可以用jquery改变点击的悬停效果吗?

我有这个site如果你看一下菜单(特别是e-rowery),你可以看到它适用于胡佛。不幸的是,没有触摸屏设备使用胡佛,所以我想将其转换为点击菜单而不是胡佛。有任何想法如何用jquery做到这一点?

1 个答案:

答案 0 :(得分:0)

实际上,没有问题,因为具有子菜单的链接无处可去(相对于它们到达某处,您无法通过单击打开子菜单)。您可以轻松将其转换为点击次数。

但是,你必须注意到你需要替代“mouseout”。您可以通过向正文添加事件处理程序来完成此操作。用户可以单击菜单外的任何空白区域以关闭子菜单。要做到这一点,正文中的处理程序必须检查单击的元素是否是菜单中的链接。如果没有,请关闭所有菜单(如果它是菜单以外的链接,请转到它)。

您可以使用jQuery的.on()方法将处理程序添加到子项的父级。


DEMO

click anywhere in the body
<ul class="menu">
    <li>
        <a href="#">click me, i am inside, i have a submenu</a>
    </li>
</ul>
<a class="outside" href="#">i am outside with no submenu, you can redirect</a>

$('body').on('click', function() {
    alert('body clicked, close menus');
});

$('.menu a').on('click', function() {
    alert('link clicked, open my submenu');
    return false; //prevent further code execution, prevent body's handler
});

$('a.outside').on('click', function() {
    alert('outside link clicked, go to page');
    return false; //prevent further code execution, prevent body's handler
});