关于Backbone.js中的events中添加的事件不生效的解决方法

在学习Backbone.js的过程中遇到一个问题:在view的events中添加事件时总是不生效。如,

$(function(){
    var MyView = Backbone.View.extend({
        events : {
            'click #test' : 'clickTest',
            'click #create' : 'createData'
        },
        clickTest : function(){
            alert("aaa!");
        },
        createData : function() {
            alert("create!");
        } 
    });
    var view = new MyView();
});
添加的click事件总是不生效。页面HTML的代码:
<input type="button" value="Test" id="test" /> <br/>
<p id="view">
    <input type="button" value="Create" id="create" />
</p>

后来找到了解决方法:缺少“el”,在MyView中添加el元素就行,el的值是所要触发事件的html控件的父元素。在本例中如果el='#view',则只有id为"create"的那个button的事件有效;如果el='body',则id="test"和id="create"的元素的事件都有效,具体代码如下:

$(function(){
    var MyView = Backbone.View.extend({
        el:'#view',
        events : {
            'click #test' : 'clickTest',
            'click #create' : 'createData'
        },
        clickTest : function(){
            alert("aaa!");
        },
        createData : function() {
            alert("create!");
        } 
    });
    var view = new MyView();
})

实例演示地址:http://jsfiddle.net/wuying/uheNB/5/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值