Как остановить привязку от перенаправления с помощью JQuery
Как я могу остановить привязку тега, перенаправляющего на другую страницу, если пользователь не вошел в систему? У меня есть функция, чтобы проверить, зарегистрирован ли пользователь или нет. Я хочу сделать это с помощью 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>
Ответы
Ответ 1
Пожалуйста, используйте
http://api.jquery.com/event.preventDefault/ demo http://jsfiddle.net/aRBY4/6/
e.preventDefault()
quote
Если этот метод вызывается, действие по умолчанию для события не будет срабатывает.
Также, если я могу предложить прочитать следующее: .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
}
});
});
Ответ 2
Измените обработчик событий кликов на этот
$('a').click(function(e){
var id = $(this).attr('id');
if (id == 'yes')
{
e.preventDefault();
e.stopPropagation();
}
else
{
//redirect
}
});
Ответ 3
Используйте 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>