我有一个像这样设置的主干事件处理程序:
events : {
"click .filter-options-container" : "filterOptionContainerClick",
},
对于其中一个.filter-options-container元素,我想要触发" filterOptionContainerClick"没有实际点击的功能。问题是函数需要访问event.currentTarget - 所以我不能只调用函数 - 我必须模拟click事件。我该怎么做呢?这就是这个功能:
filterOptionContainerClick: function(e){
if (this.filtersEnabled){
$(e.currentTarget).addClass('active');
} else {
return;
}
},
答案 0 :(得分:2)
为什么不检查e是一个事件还是一个元素。那么你可以随意使用它。
events: {
'click .filter-options-container': 'filerOptionContainerClick',
},
//....
filterOptionContainerClick: function( obj ) {
if( !this.filtersEnabled || !obj ) {
return;
}
if( obj.currentTarget ) {
$( obj.currentTarget ).addClass( 'active' );
} else if( $( obj ) && $( obj ).hasClass( 'filter-options-container' ) ) {
$( obj ).addClass( 'active' );
}
}
换句话说,您可以手动调用filterOptionContainerClick。类似的东西:
//.....
this.filterOptionContainerClick( $( '.filter-options-container' ) );
//....
如果您需要为每个标识符包含唯一标识符,则可以使用元素上的id
属性执行此操作,也可以使用自定义data-whatever
属性(即<div class="filter-options-container" data-identifier='some unique id'>...</div>
)