我的Drupal 7网站(由Nice Menus模块提供)上有一个弹出菜单,当用户悬停时会激活该菜单。默认情况下,我必须放弃父级的路径,但实际上我不希望父级链接到某个地方。我尝试了Disable link using css的答案,但也禁用了悬停效果。
有没有办法从菜单的父级中删除链接,但保持鼠标悬停效果?
这是相关代码:
<div id="block-nice-menus-2">
<ul id="nice-menu-2">
<li class="menu__item">
<a class="menu__link menu__link" href="/mysite/">
My Menu
</a>
</li>
</ul>
</div>
修改:阅读this comment后,我尝试添加
Drupal.behaviors.my_custom_behavior = {
attach: function(context, settings) {
$('#nice-menu-2 ' +
'li > ' +
'a:not(.MYSITE-processed)').attr('href', '#')
.addClass('MYSITE-processed');
}
};
到我的主题script.js
文件,但这不起作用。我做错什么了吗?我可以继续这个吗?
答案 0 :(得分:1)
之前我不得不多次做这个伎俩。我只是做了一些像javascript这样的javascript:
$('MYLINKSELECTOR').click(function() {
return false;
}).mouseover(function() {
$(this).css('cursor', 'default');
}).attr('href', '#');
它将禁用目标href并设置默认光标但保持悬停效果。
编辑:我在MYTHEME/js/scripts.js
中使用这个脚本并给你一个选择器的例子(我使用Superfish,而不是Nice菜单),这是我的完整代码:
Drupal.behaviors.pweMegaMenu = {
attach: function(context, settings) {
// Parents links shouldn't be clickabled
$('#menu-695-2 > a, #menu-695-2 li#menu-884-2 > a, #menu-695-2 li#menu-866-2 > a').click(function() {
return false;
}).mouseover(function() {
$(this).css('cursor', 'default');
}).attr('href', '#');
}
答案 1 :(得分:0)
链接不一定要链接到任何地方。例如:<a href="#">
,但如果它没有链接到任何地方,我建议考虑使用css游标将<a>
标记更改为<div>
或<span>
s属性。
你可以把它变成一个小提琴,这样我们还有更多可以合作吗?不知道弹出菜单是什么样的,或者(javascript?css?)控制悬停效果,我很难给你一个具体的解决方案。
答案 2 :(得分:0)
您可以使用“javascript:void(0)”作为href值。
例如: - <a href="javascript:void(0);" class="yourclass">Your text</a>
这与链接相同,但点击时不会发生重定向。