Jquery代码阻止我的超链接工作

时间:2014-05-03 14:38:39

标签: jquery hyperlink click anchor stoppropagation

我有一个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;
});

1 个答案:

答案 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");
    }
);