如何使用JQuery阻止锚重定向

时间:2012-06-28 08:36:07

标签: javascript jquery html

如果用户未登录,如何停止重定向到其他页面的锚标记?我有一个功能来检查用户是否登录。我想用JQuery或JavaScript来做。这是我到目前为止所尝试的但没有结果:

<a href="www.somewhere.com" id="yes">Read More</a>

<script type="text/javascript">
    $(document).ready(function(){
        $('a').click(function(){
            var id = $(this).attr('id');
            if(id == 'yes'){
                //i want to prevent
            }else{
                //redirect
            }
        });
    });
</script>

4 个答案:

答案 0 :(得分:49)

请使用

http://api.jquery.com/event.preventDefault/ 演示 http://jsfiddle.net/aRBY4/6/

e.preventDefault() 

引用`

  

如果调用此方法,则事件的默认操作不会   触发。

另外,如果我建议您阅读:.prop() vs .attr()

希望这有帮助,

示例代码

  $('a').click(function(event){
    event.preventDefault();
    //do whatever
  }  

在你的情况下,请尝试这个

$(document).ready(function() {
    $('a').click(function(event) {
        var id = $(this).attr('id');
        if (id == 'yes') {
            event.preventDefault();
            //i want to prevent
        } else {
            //redirect
        }
    });
});​

答案 1 :(得分:0)

将您的点击事件处理程序更改为此

$('a').click(function(e){
    var id = $(this).attr('id');
    if (id == 'yes')
    {
        e.preventDefault();
        e.stopPropagation();
    }
    else
    {
        //redirect
    }
});

答案 2 :(得分:0)

尝试这个

    $("a").on("click",function(e){
         e.preventDefault();
         alert("Clicked");

     });

快乐编码;

答案 3 :(得分:-1)

使用event.preventDefault()。它用于防止事件的默认操作。

<script type="text/javascript">
$(document).ready(function(){
      $('a').click(function(){
          var id = $(this).attr('id');
         if(id == 'yes'){
             event.preventDefault() 
         }else{
            //redirect
         }
     });
});
</script>