ExtJS 6检查是否以编程方式触发了事件

时间:2018-03-14 14:22:55

标签: extjs extjs6

如何检查事件是否以编程方式触发?

即我有一个Ext.tree.Panel并监听selectionchange事件。如果事件是由用户手动触发(行单击)或通过select()方法,我如何在处理程序中检查?

2 个答案:

答案 0 :(得分:1)

选项1: 对于大多数事件,eOpts参数将传递给事件。取决于事件,这由ExtJs填充。如果事件是手动触发的,那么eOpts永远不会被定制填充或填充。

选项2: 如果在代码中发生手动事件触发,则可以操作添加自定义参数

据我所知和我的研究,没有基于selectionchange事件范围的解决方案。但是从设计的角度来看,这是应该如何,因为selectionchange事件不应该依赖于调用者。从说到我可以说需要2个不同的事件。采取不同行动的地方。 (这是事件的定义:))

因此,我的建议是覆盖select方法并触发一个自定义事件,在该事件中,您可以执行不同的操作。如果在rowclick事件中需要,可以触发另一个自定义事件。

您可以在子类中覆盖它,也可以将Ext.override用于全局范围。

答案 1 :(得分:1)

你不能,真的。 “最佳”方式是监听itemclick事件,并检查selectionchange事件是否在一些较小的阈值范围内被触发。