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
Backbone.js backbone.hammer.js,事件不会再次触发_Backbone.js_Backbone Views_Backbone Events_Backbone Routing_Hammer.js - Fatal编程技术网

Backbone.js backbone.hammer.js,事件不会再次触发

Backbone.js backbone.hammer.js,事件不会再次触发,backbone.js,backbone-views,backbone-events,backbone-routing,hammer.js,Backbone.js,Backbone Views,Backbone Events,Backbone Routing,Hammer.js,以下按钮单击仅在页面加载时有效,而不是在路由之后。 1) 显示默认页面 2) 单击“单击此处”按钮(此功能正常) 3) 单击其他按钮进行路由(不重新加载页面,清除内容,并创建一个新的view give选项以路由回默认页面) 4) 单击该选项以移回默认设置。 5) 如果不重新加载,请重新绘制默认页面。 6) 单击“单击此处”按钮(此按钮无效) 这是密码 var LPRouter = Backbone.Router.extend({ initialize: function (option

以下按钮单击仅在页面加载时有效,而不是在路由之后。 1) 显示默认页面 2) 单击“单击此处”按钮(此功能正常) 3) 单击其他按钮进行路由(不重新加载页面,清除内容,并创建一个新的view give选项以路由回默认页面) 4) 单击该选项以移回默认设置。 5) 如果不重新加载,请重新绘制默认页面。 6) 单击“单击此处”按钮(此按钮无效)

这是密码

var LPRouter = Backbone.Router.extend({

    initialize: function (options) {
        this.pageContent = $('#pageContent');
    },

    routes: {
        'AA': 'routerMethod',
        '': 'defaultMethod'
    },

    defaultMethod: function () {
        //TODO: Set page title.

        var self = this;

        self.pageContent.empty();

        if (!self.someView) {
            self.someView = new SomeView();
            self.someView.render();
        }

        self.pageContent.append(self.someView.el);

        /*
        Create a view with some link or button which will redirect to routerMethod.
        */
    },

    routerMethod : function() {
        this.pageContent.empty();
        /*
            Create a view with some link or button which will redirect to defaultMethod.
        */

    }

});

var SomeView = Backbone.View.extend({

    tagName: "div",

    className: "someclass",

    initialize: function (options) {

    },

    hammerEvents: {
        'tap .innerclass': 'someMethod'
    },

    someMethod: function (e) {
        alert("did you click me?");
    },

    render: function () {
        this.$el.append("<div class='innerclass'><input type='button' value='click here'/></div>");
        return this;
    }

});
var LPRouter=Backbone.Router.extend({
初始化:函数(选项){
this.pageContent=$(“#pageContent”);
},
路线:{
“AA”:“路线方法”,
'''defaultMethod'
},
defaultMethod:函数(){
//TODO:设置页面标题。
var self=这个;
self.pageContent.empty();
如果(!self.someView){
self.someView=新的someView();
self.someView.render();
}
self.pageContent.append(self.someView.el);
/*
创建一个带有链接或按钮的视图,该链接或按钮将重定向到routerMethod。
*/
},
路由方法:函数(){
this.pageContent.empty();
/*
创建一个带有链接或按钮的视图,该链接或按钮将重定向到defaultMethod。
*/
}
});
var SomeView=Backbone.View.extend({
标记名:“div”,
类名:“someclass”,
初始化:函数(选项){
},
锤击事件:{
“tap.innerclass”:“someMethod”
},
方法:函数(e){
警报(“你点击我了吗?”);
},
渲染:函数(){
本.$el.追加(“”);
归还这个;
}
});

渲染函数每次都会创建一个新按钮,因此绑定到原始按钮元素的事件不会绑定到新按钮元素。您可以使用delegateEvents()方法重新绑定事件哈希-

,但我正在检查视图对象是否已存在,因为我正在创建新对象。为什么要委托?我正在使用hammerEvents。我计划删除视图并重新渲染它。