0
4

2 回答 2

2

在 window.location 之后更改 reutrn true 以返回 false;

$('.act-a').click(function(){
    if(parseInt($('.value').val())>0){
        //window.location.href = window.location.origin + $(this).attr('url') + '?r=' + parseInt($('.value').val());
        window.location.replace("www.google.com");
        return false;
    }
    return false;
});

在点击、提交等事件上返回 false 会阻止此类事件的默认行为。仅当您想运行一个函数然后让事件传播到其他常规侦听器时才使用 return true,例如跟随链接的 href、继续正常的表单提交等...这篇文章有助于事件冒泡基础知识:http:// www.quirksmode.org/js/events_order.html

于 2012-09-04T16:40:45.483 回答
2

return true;告诉浏览器执行链接的默认操作。因此,浏览器正在跟踪链接而不是运行window.location.

删除两个 return 语句,而是添加e.preventDefault();

$('.act-a').click(function(e){
    e.preventDefault();
    if(parseInt($('.value').val(), 10) > 0){
        window.location.href = window.location.origin + $(this).attr('url') + '?r=' + parseInt($('.value').val(), 10);
    }
});

PS您应该添加,10parseInt确保该数字被解析为以10为底。

于 2012-09-04T16:42:11.907 回答