如何在使用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
显示。
答案 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();
});
});