我的骨干函数我想在条件上触发一个方法,该函数已经在对象内,在用户点击添加的events
声明中工作正常。但是条件是我的点击事件根本没有触发..
这是我的代码:
在观点部分:
events:{
"click .mainMenu a":"listTrigger" // this is work on user click
},
initialize:function(params){
_.bindAll(this);
var that = this;
this.listItems = ["projectName","assignedTo","projectName"];
this.classItems = ["projectName","assignedTo","sortBy"];
this.listCatch = [];this.boardCatch=[];
this.params = params,
this.filterState = false,
this.listTriggerElement = "";//i am initiating a element variable
for(var i=0;i<this.listItems.length; i+=1){
this.listCatch[i] = [];
}
this.collection = new singleton.collection;
// this.collection.on('reset', this.render);
this.collection.on('add', this.render);
this.collection.on('remove', this.render);
var dataFetcher = function(){
that.collection.fetch({update:true,remove:true});
appDataFetcher = setTimeout(dataFetcher,10000);
};
var appDataFetcher = setTimeout(dataFetcher,0);
},
render:function(){
this.listCollection = this.collection;
this.boardCollection = this.collection;
this.filterCollection = this.collection;
this.listCollect();
this.filterState != true ? this.boardViewSet() : this.listTriggerElement.trigger('click');
// checking by condition and triggering click.. not working
},
listTrigger:function(e){ //it should work by user click as well data udpate..
e.preventDefault();
this.listTriggerElement = $(e.target);
var filterKey = $(e.target).text();
var category = $(e.target).parents('ul').prop('class');
var collect = _.filter(this.filterCollection.models, function(model){
return model.get(category) === filterKey;
});
var newColl = new singleton.collection();
newColl.reset(collect);
this.boardCollection = newColl;
this.boardViewSet();
this.filterState = true;
}
我该如何解决这个问题..?
答案 0 :(得分:2)
此视图范围内的“.mainMenu a”元素是什么?
如果不是,则需要将“el”对象设置为父容器,例如:
http://jsfiddle.net/C9wew/4347/
myView = Backbone.View.extend({
el: "#container",
render: function(){
},
events: {
"click button": "doSomething"
},
doSomething: function( event ){
console.log(345345);
}
});
new myView();
如果你没有定义“范围”(el),它将不起作用。