如何禁用按下的锚标签

时间:2014-11-10 17:33:49

标签: jquery

如何在使用jQuery按下时禁用锚标记?我尝试了e.preventDefault();,但禁用了所有锚标签,而不是按下的标签。

 $(".header_menu .header_menu_res ul > .menu-item a, .content_res .header_menu_res ul > .menu-item a").live("click",function(e) {
e.preventDefault();
        if($(this).find(".adv_categories").length==1) {
            if($(this).find('.adv_categories').hasClass("importantRule")) {
                $(this).find('.adv_categories').removeClass("importantRule");
                $(this).removeClass("importantRuleButton");
            } else {
                if($(this).siblings(".menu-item").find(".sub-menu").hasClass("importantRule")) {
                    $(this).siblings(".menu-item").find(".sub-menu").removeClass("importantRule");
                }
                $(this).find('.adv_categories').addClass("importantRule");
                $(this).addClass("importantRuleButton");
            }
        } 
    });

这是li

的html
<li id="menu-item-36" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36"><a class="primary" href="http://www.test.co.uk/about-us/"><em class="icon-info"></em>About Us</a>
<ul class="adv_categories"><li></li></ul></li>

页面仍然会转到about-us。我希望它被禁用。当我使用e.preventDefault();sub-menu显示。

1 个答案:

答案 0 :(得分:0)

与此答案相关联的是jsFiddle,说明了解决方案。

在较高级别,您为锚点击一个注册处理程序,并且当调用与处理程序关联的函数时,它将作为参数传递给事件。然后可以要求该事件停止传播,结果将不是锚点的默认处理,这将是导航。

<强> HTML

<a id="myA" href="http://www.ibm.com">Go to IBM</a>

<强>的JavaScript

$(function() {
    $("#myA").click(function(e){
        alert("Clicked");
        e.preventDefault();
    });
});