superfish - 如何禁用顶级链接

superfish - How to disable the top level links

我使用 superfish 菜单插件 - v1.7.4 我想禁用顶级链接。

我尝试了以下方法:

$(document).ready(function() {  
  // does not work 1:
  $('div#block_top_menu > ul.sf-menu > li > a.sf-with-ul').bind('click', false); // only direct children  

  // does not work 2:
  $('div#block_top_menu > ul.sf-menu > li > a.sf-with-ul').attr("href", "#"); // disable top-level links by replacing with #s

  // does not work 3:      
  $('div#block_top_menu > ul.sf-menu > li > a.sf-with-ul').click(function(){
            return false; // disable browser default when link is clicked
  })

});

但其中 none 有帮助。

可能都与旧版本的 superfish 或其他插件有关。

那么,如何禁用顶级链接?

就我个人而言,这种方法总是有效:

HTML:

<a href="mylink.php" id="mylink">Link here</a>

JS:

jQuery(document).ready(function() {
    jQuery('#test').unbind('click').bind('click', function(e) {
         e.preventDefault(); //Prevent default behavior
         return false;
    });
});

方法先解绑任何点击方法,然后再绑定我们的方法。

我用

$('div#block_top_menu > ul > li > a').attr("href", "#");

如@charlietfl 所建议:sf* 类 稍后添加,因此我无法在选择器中使用它们...