Backbone - 覆盖应用程序链接

时间:2013-10-20 13:21:53

标签: backbone.js

我使用以下代码将所有点击的链接转移到Backbone路由器而不是命中服务器:

$(document).delegate("a:not([data-bypass])", "click", function(evt) {
                var href = $(this).attr("href");
                var protocol = this.protocol + "//";

                if (href && href.slice(0, protocol.length) !== protocol &&
                href.indexOf("javascript:") !== 0) {
                    evt.preventDefault();

                    Backbone.history.navigate(href, true);
                }
            });

它运行良好,但在尝试使用“preventDefault”时会导致问题,例如:

onCancel: function(e){
   e.preventDefault();
   this.hide();
}

这里的preventDefault函数被忽略,Backbone跟随链接。我设法通过在顶部函数中添加以下代码行来解决这个问题:

if(evt.isDefaultPrevented())
   return false;

但我想知道是否有更好的方法来完成我想做的事情?

0 个答案:

没有答案