如何删除链接,但保持鼠标悬停效果?

时间:2014-06-26 13:17:56

标签: css hyperlink drupal-7

我的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文件,但这不起作用。我做错什么了吗?我可以继续这个吗?

3 个答案:

答案 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>

这与链接相同,但点击时不会发生重定向。