Javascript BackboneJS PushState阻止页面重新加载

Javascript BackboneJS PushState阻止页面重新加载,javascript,jquery,node.js,backbone.js,handlebars.js,Javascript,Jquery,Node.js,Backbone.js,Handlebars.js,我有一个问题,当我点击锚时,页面会重新加载,即使我使用的是pushstate:true 因此,在main.js中,我有: Backbone.history.start({ pushState: true, root: App.ROOT }); $(document).on('click', 'a:not([data-bypass])', function (evt) { var href = $(this).attr('href'); if (href &&

我有一个问题,当我点击锚时,页面会重新加载,即使我使用的是
pushstate:true

因此,在main.js中,我有:

Backbone.history.start({ pushState: true, root: App.ROOT });

$(document).on('click', 'a:not([data-bypass])', function (evt) {

    var href = $(this).attr('href');

        if (href && href.indexOf('#') === 0) {
            evt.preventDefault();
            Backbone.history.navigate(href, true);
        }
});
所以,我试着像这里提到的那样改变它,但没有成功

我正在使用
BackboneJS
NodeJS
HandlebarsJS


有什么解决方法吗?

pushState:true
与阻止在单击链接时加载整个页面无关,它只是更新浏览器地址栏中url地址的一种方法。应该是
evt.preventDefault()
阻止链接的默认行为


您提供的代码非常有选择性地应用了
evt.preventDefault()
,根据您的代码,不以
#
开头的链接与通常预期的链接一样工作-重新加载该页面。

当我添加
evt.preventDefault()时
之前的
if
-语句也没有帮助!?…:-/我也不确定这是什么意思,但在
之前,if
evt.preventDefault()
实际上会阻止任何链接像链接一样运行,即不会将您带到链接页面,如果您使用javascript处理该操作,这就是您想要的。你链接到的答案实际上在检查链接是否是外部链接和仅防止内部链接加载链接方面非常有用。