Mailto或超链接不会;由于子菜单脚本,无法处理页脚菜单

Mailto or hyperlink doesn't work on footer menu due to submenu script

本文关键字:菜单 脚本 处理 超链接 Mailto      更新时间:2023-09-26

对于我的子菜单脚本,我的mailto链接或任何超链接都不起作用,我不知道为什么以及在脚本中的哪里会引起问题。

$(function () {
$('footer > ul > li a').click(function(event) {
    event.preventDefault();
    event.stopPropagation();
    var $parentli = $(this).closest('li');
    $parentli.siblings('li').find('ul:visible').hide();
    $parentli.find('> ul').stop().toggle();
});
});
$(document).click(function() {
$("footer ul li ul").hide();
});

Fiddle:http://jsfiddle.net/foroloca/65t6gk5n/

您正在调用event.preventDefault();。这样可以防止事件的默认功能,并最终防止您的链接被激发。

如果您需要将此功能用于页脚中的其他a元素,我建议您为这些元素添加一个专门的类名,并修改事件处理程序以仅应用于这些元素:

<ul>
    <li>
        <a href="..." class="prevent-default">...</a>
    </li>
    <li>
        <a href="mailto:...">...</a>
    </li>
    ...
</ul>
$('footer > ul > li a.prevent-default').click(function(event) {
    event.preventDefault();
    ...
});

JSFiddle演示

您可以通过href使用选择器。

$('footer > ul > li a[href="#"]') 

所有href(href="#")中有hash的超链接都将通过您的onclick处理程序触发

http://jsfiddle.net/65t6gk5n/3/