我的主干函数我想在条件下触发一个方法,该函数已经在对象中,在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;
}
我该如何解决这个问题..?