单击按钮在骨干js的视图中不起作用

时间:2014-03-24 02:24:45

标签: javascript backbone.js requirejs underscore.js underscore.js-templating

我是backbone.js的新手,我创建了一个contact form,并希望在我的网站的几个页面中使用它。我正在使用text.js为项目的每个模板制作html文件。

以下是customer视图,我的项目中的一个视图,并在其中添加contact form

define(["jquery" ,
    "underscore" ,
    "backbone" ,
    "text!templates/contact_tem.html"
],function($ , _ , Backbone, Contact){

  var customer = Backbone.View.extend({
    initialize : function(){
    },
    el: '#customerdiv',
    render : function(){
        this.$el.empty();
        var _contact = _.template(Contact);
        this.$el.html("blah blah blah");
        $("#contactformhere").html(_contact);
    }
  });
  return customer;
});

示例,我在contact form模板中有一个按钮,我不想在button视图中处理customer事件,如果我这样做,我必须编写按钮事件在我的项目的每个视图中。然后我创建一个视图,用于处理contact表单:

define(["jquery" ,
     "underscore" ,
     "backbone" ,
     "text!templates/contact_tem.html"
],function($ , _ , Backbone , Contact){
var contact = Backbone.View.extend({
    initialize:function(){
        this.render();
    },
    event : {
        'click #testonContactForm' : 'hi'
    },
    hi : function(){
      alert("Hi");
    },
    render:function(){
        var _contact = _.template(Contact)
        this.$el.html(_contact);
    }
});
return contact;
});
联系人视图中的

alert("hi")无效,对此有什么想法?感谢。

1 个答案:

答案 0 :(得分:0)

尝试替换事件事件

events : {
        'click #testonContactForm' : 'hi'
    }

http://backbonejs.org/#View-delegateEvents

希望这有帮助