24

ユーザーがログインしていない場合に別のページにリダイレクトするアンカー タグを停止するにはどうすればよいですか? ユーザーがログインしているかどうかを確認する機能があります。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

4 に答える 4

58

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
        }
    });
});​
于 2012-06-28T08:38:01.403 に答える
3

クリックイベントハンドラーをこれに変更します

$('a').click(function(e){
    var id = $(this).attr('id');
    if (id == 'yes')
    {
        e.preventDefault();
        e.stopPropagation();
    }
    else
    {
        //redirect
    }
});
于 2012-06-28T08:38:16.073 に答える
0

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>
于 2012-06-28T08:55:21.443 に答える