Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 主干事件处理会导致不必要的重新加载,我可以避免这种情况吗?_Jquery_Backbone.js_Backbone Views_Backbone Events_Backbone Routing - Fatal编程技术网

Jquery 主干事件处理会导致不必要的重新加载,我可以避免这种情况吗?

Jquery 主干事件处理会导致不必要的重新加载,我可以避免这种情况吗?,jquery,backbone.js,backbone-views,backbone-events,backbone-routing,Jquery,Backbone.js,Backbone Views,Backbone Events,Backbone Routing,我有一个复杂的视图,我想链接的网页 示例:当某个面板打开时,我将url更改为www.Example.com/#panel-1 这很好用 我想使用主干充当普通事件处理程序,而不改变路由或重新加载。我有: var ApplicationView = Backbone.View.extend({ el: $('body'), events: { 'click #comingsoon': 'displayComingSoon' }, displayComingSoon: function(

我有一个复杂的视图,我想链接的网页

示例:当某个面板打开时,我将url更改为www.Example.com/#panel-1

这很好用

我想使用主干充当普通事件处理程序,而不改变路由或重新加载。我有:

var ApplicationView = Backbone.View.extend({

el: $('body'),

events: {
    'click #comingsoon': 'displayComingSoon'
},

displayComingSoon: function(){
    //some jquery code to add or remove classes
}

});

但我的问题是,在执行该代码之后,页面会重新加载,类也会被删除。我是否必须指定使用主干网进行事件处理的路由?我希望此事件的URL不要更改。

返回false是Javascript中取消事件默认操作的方法之一(有关更多信息,请参阅和)。例如,链接上的单击事件将导致浏览器导航到该链接,但如果在事件处理程序中返回false,则此默认行为将被取消

因此,您可以将其应用于主干视图中的事件处理程序:

var ApplicationView = Backbone.View.extend({
    el: $('body'),
    events: {
        'click #comingsoon': 'displayComingSoon'
    },
    displayComingSoon: function(){
        //some jquery code to add or remove classes
        return false;
    }
});

您是否在事件处理程序中返回false,因此默认操作被取消?@DanielJ.G。我不是。我只是试了一下,效果很好。这是用脊梁骨实现这一目标的最佳实践吗?我是个新手。此外,如果你想创造一个答案,我会标记为正确的,如果你认为这是最好的方式这样做。非常感谢您的快速响应!谢谢你的帮助链接以及!