如果用户未登录,如何停止重定向到其他页面的锚标记?我有一个功能来检查用户是否登录。我想用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>
答案 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>