marionettejs - 获取生成哪个元素事件
marionettejs - Get on which element event is generated
我已经在该区域内定义了 LayoutView &。对于一个区域,我附加了 CompositeView。在 CompositeView 部分,我添加了 ui 块和触发块,例如
ui: {
checkbox: '#DivGrp1 input[type=checkbox]'
}
triggers: {
'change @ui.checkbox': 'chk:clicked'
},
在父class中,我正在听
这样的事件
childEvents: {
'chk:clicked':function(e){
// e is referring to view & not checkbox
}
}
我想访问引发事件的输入元素。此处选中或未选中哪个复选框。
这些复选框是动态的。
谢谢
阿尼卢达
简短回答:在拥有该元素的视图中访问 DOM。然后使用它的 trigger
方法手动触发事件,传递父视图所需的操作结果。
我不是 marionette 专家,但一般来说,从其他视图直接访问一个视图的元素并不是一个好主意。
在子视图本身中执行需要 DOM 访问权限的操作,如果要访问事件对象,请使用 events
属性。执行操作然后触发父视图正在使用 trigger()
方法监听的事件。
这是一个:example from the official docs 具有相似的结构。
如果您必须直接访问该元素,那么您可以将它的引用作为参数传递给 trigger()
方法。但不推荐这样做。
我已经在该区域内定义了 LayoutView &。对于一个区域,我附加了 CompositeView。在 CompositeView 部分,我添加了 ui 块和触发块,例如
ui: {
checkbox: '#DivGrp1 input[type=checkbox]'
}
triggers: {
'change @ui.checkbox': 'chk:clicked'
},
在父class中,我正在听
这样的事件childEvents: {
'chk:clicked':function(e){
// e is referring to view & not checkbox
}
}
我想访问引发事件的输入元素。此处选中或未选中哪个复选框。
这些复选框是动态的。
谢谢 阿尼卢达
简短回答:在拥有该元素的视图中访问 DOM。然后使用它的 trigger
方法手动触发事件,传递父视图所需的操作结果。
我不是 marionette 专家,但一般来说,从其他视图直接访问一个视图的元素并不是一个好主意。
在子视图本身中执行需要 DOM 访问权限的操作,如果要访问事件对象,请使用 events
属性。执行操作然后触发父视图正在使用 trigger()
方法监听的事件。
这是一个:example from the official docs 具有相似的结构。
如果您必须直接访问该元素,那么您可以将它的引用作为参数传递给 trigger()
方法。但不推荐这样做。