Javascript 是否可以获取已触发的事件名称,以便在方法中将其用作字符串?

Javascript 是否可以获取已触发的事件名称,以便在方法中将其用作字符串?,javascript,backbone.js,Javascript,Backbone.js,我想知道我是否运行Backbone.Events.trigger('show:something',this.model)我可以在订阅的侦听器中获取要传递给我映射到的方法的事件名称吗this.listenTo(Backbone.Events,'show:something',this.toggle,this) 切换:功能(参数){ //我能买些什么吗? } 简短回答否 但是,您可以侦听“all”事件,事件的名称将作为第一个参数传递给函数 this.on('all', function(ev,

我想知道我是否运行
Backbone.Events.trigger('show:something',this.model)
我可以在订阅的侦听器中获取要传递给我映射到的方法的事件名称吗
this.listenTo(Backbone.Events,'show:something',this.toggle,this)


切换:功能(参数){
//我能买些什么吗?
}

简短回答否

但是,您可以侦听“all”事件,事件的名称将作为第一个参数传递给函数

this.on('all', function(ev, ...) {
  console.log(ev); // the name of the event - show:something in your above example
});
简短回答“否”

但是,您可以侦听“all”事件,事件的名称将作为第一个参数传递给函数

this.on('all', function(ev, ...) {
  console.log(ev); // the name of the event - show:something in your above example
});

不,你不能,因为这是唯一的事件触发器,正如joe fitter描述的源代码

但另一种选择是绑定要调用的函数,而不是使用原始函数。例如,如果使用下划线,请使用this而不是this.toggle

\uu.bind(this.toggle,this'theEventNameYouWant')

让第一个参数

切换:函数(eventName,param){

来源


我不确定您是否需要第二个listenTo绑定。请与我联系,我将更新答案。

不,您不能,因为只有joe fitter描述了源代码中的事件触发器

但另一个选项是绑定要调用的函数,而不是使用原始函数。例如,如果使用下划线,请使用this而不是this.toggle

绑定(this.toggle,this'theEventNameYouWant');

让第一个参数

切换:函数(eventName,param){

来源


我不知道你是否需要第二个这个来绑定listenTo。回到我这里,我会更新答案。

你为什么需要它..?你知道它总是
'show:something',对吧..?它什么时候/如何改变..?如果我有一个切换方法,参数可以隐藏或显示,而不是传递hide或show param只使用事件?我看不到任何真正的好处。你可以通过传递true/false来触发
'show:something'
,而不是试图用相同的方法来处理不同的事件。为什么你需要得到它呢?你知道它总是
'show:something',
,对吧?它什么时候/如何改变?如果我有想法的话一种切换方法,其中参数可以是hide或show,而不是通过hide或show参数只使用事件?我看不到任何真正的好处。您可以通过将其传递为true/false来触发
“show:something”
,而不是通过这种方式尝试对不同的事件使用相同的方法。。。