Javascript 如何在不实际单击的情况下手动触发主干单击事件
我的主干事件处理程序设置如下:Javascript 如何在不实际单击的情况下手动触发主干单击事件,javascript,backbone.js,javascript-events,Javascript,Backbone.js,Javascript Events,我的主干事件处理程序设置如下: events : { "click .filter-options-container" : "filterOptionContainerClick", }, 对于其中一个.filter options容器元素,有一个场景,我希望在不实际单击的情况下触发“filterOptionContainerClick”函数。问题是函数需要访问event.currentTarget-所以我不能只调用函数-我必须模拟单击事件。我该怎么做?以下是该函
events : {
"click .filter-options-container" : "filterOptionContainerClick",
},
对于其中一个.filter options容器元素,有一个场景,我希望在不实际单击的情况下触发“filterOptionContainerClick”函数。问题是函数需要访问event.currentTarget-所以我不能只调用函数-我必须模拟单击事件。我该怎么做?以下是该函数:
filterOptionContainerClick: function(e){
if (this.filtersEnabled){
$(e.currentTarget).addClass('active');
} else {
return;
}
},
为什么不检查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
属性,或者只使用自定义数据属性(即…
)