<a href="javascript:void(0);" onclick="redirectTo('https://example.com')">隐藏URL的链接</a>
<script>
function redirectTo(url) {
window.location.href = url;
}
</script>
示例
try {
if (item.isHeader == "1") {
str = "<li class='menu-header'>" + item.name + "</li>";
$(parent).append(str);
if (item.childMenus != "") {
initMenu(item.childMenus, parent);
}
} else {
item.icon == "" ? item.icon = "" : item.icon = item.icon;
if (item.childMenus == "") {
// 修改普通菜单项的href为JavaScript伪协议,并用data-url存储真实地址
str = `<li><a href="javascript:void(0)" data-url="${item.url}"><i class='icon-font'>${item.icon}</i><span>${item.name}</span></a></li>`;
$(parent).append(str);
} else {
// 父级菜单项移除真实href,保留点击功能用于展开
str = `<li><a href="javascript:void(0)"><i class='icon-font'>${item.icon}</i><span>${item.name}</span><i class='icon-font icon-right'></i></a>
<ul class='menu-item-child' id='menu-child-${item.id}'></ul></li>`;
$(parent).append(str);
var childParent = $("#menu-child-" + item.id);
initMenu(item.childMenus, childParent);
}
}
} catch (e) {
console.error(e);
}
// 在文档加载后绑定点击事件(放在代码末尾或单独脚本中)
$(function() {
// 普通菜单跳转逻辑
$('body').on('click', 'a[data-url]', function(e) {
e.preventDefault();
window.location.href = $(this).data('url');
});
// 子菜单展开逻辑(根据现有功能补充,示例如下)
$('body').on('click', 'li > a:has(+ .menu-item-child)', function(e) {
e.preventDefault();
$(this).next('.menu-item-child').slideToggle();
});
});
评论 (0)