2012-06-28 2 views
14

Как я могу остановить привязку тега привязки к другой странице, если пользователь не вошел в систему? У меня есть функция, чтобы проверить, зарегистрирован ли пользователь или нет. Я хочу сделать это с помощью JQuery или JavaScript. Вот то, что я пытался до сих пор, но без каких-либо результатов:Как остановить привязку при перенаправлении с помощью JQuery

<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> 
+0

Возможно, я предлагаю вам использовать сеансы, чтобы этот метод –

+0

Вы можете вернуть false, когда запускается событие onclick. – funerr

+0

Аутентификация должна выполняться на стороне сервера на вашем PHP, а не на JavaScript вообще. – Greg

ответ

38

Пожалуйста, используйте

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 
     } 
    }); 
});​ 
+0

. Я использовал тот же метод, который вы упомянули, но он возвращает undefined при щелчке, если я предупреждаю идентификатор привязки. – Ankit

+0

@Ankit круто, поэтому preventDefault в стороне, ':)' есть еще одна проблема с селектором, который получает 'id', вы также можете вставить свой html в вопрос, и я мог бы помочь вам, приветствия –

+0

У меня отсутствовал id как мой страница показывала один и тот же код для двух случаев, спасибо большое @Tats, проблема решена. – Ankit

0

Изменение обработчика событий нажмите на эту

$('a').click(function(e){ 
    var id = $(this).attr('id'); 
    if (id == 'yes') 
    { 
     e.preventDefault(); 
     e.stopPropagation(); 
    } 
    else 
    { 
     //redirect 
    } 
}); 
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> 
Смежные вопросы