我有一个jquery问题。在我编写了一个可以在下面看到的代码之后。我的超链接无法以某种方式工作。位于页脚上的相同链接可以完美地工作。最有可能的是我在查询中做错了什么。你能帮我解决一下这个问题。
谢谢,
$(".menu-url > a").on('click mouseenter',
function(){
$(this).css("color","#000"),
$(this).next("div").css("visibility","visible"),
$(".menu-url > div").not( $(this).next("div") ).css("visibility","hidden"),
$(".menu-url > a").not( $(this) ).css("color","#fff");
return false;
}
);
$(document).click(function() {
$(".menu-url > div").css("visibility","hidden"),
$(".menu-url > a").css("color","#fff");
});
$(".menu-url").click(function(e) {
e.stopPropagation();
return false;
});
答案 0 :(得分:1)
我的超链接无法以某种方式工作。
那是因为你告诉jQuery阻止他们工作。来自return false
处理程序的click
告诉jQuery告诉浏览器1.取消冒泡,以及2.防止默认操作(链接跟随链接)。
如果您想取消冒泡但不阻止默认操作,请接受事件参数,移除return false;
,然后添加对stopPropagation
的调用:
$(".menu-url > a").on('click mouseenter',
function(e){
$(this).css("color","#000"),
$(this).next("div").css("visibility","visible"),
$(".menu-url > div").not( $(this).next("div") ).css("visibility","hidden"),
$(".menu-url > a").not( $(this) ).css("color","#fff");
e.stopPropagation();
}
);
如果您不需要停止传播,只需删除return false;
。
$(".menu-url > a").on('click mouseenter',
function(){
$(this).css("color","#000"),
$(this).next("div").css("visibility","visible"),
$(".menu-url > div").not( $(this).next("div") ).css("visibility","hidden"),
$(".menu-url > a").not( $(this) ).css("color","#fff");
}
);