如何在事件处理程序上区分触发它的对象是什么

格福卡达

我们有一个事件处理程序,正在监听ObjectModifiedEvent容器内容类型的事件。

我们注意到,只要在容器内添加对象,容器就会得到this ObjectModifiedEvent

由于将某些东西添加到容器中是该事件处理程序不关心的事情,因此我们正在寻找一种方法,如果这是该事件的触发因素,则可以尽早返回。

我们可以将其与以下内容一起使用:

if event.__class__ != ObjectModifiedEvent:
    return

似乎事件参数没有足够的信息了解此事件的根本触发因素(因为将对象添加到容器中确实会更改容器),因此检查事件无济于事。

除了上述技巧以外,还有其他想法可以区分吗?

马丁·彼得斯(Martijn Pieters)

容器发出一个ContainerModifiedEvent偶数实例,它是的子类ObjectModifiedEvent您的测试有效地测试了是否event属于子类;更好的技巧是使用来测试类型type(event) not is ObjectModifiedEvent

您可以ContainerModifiedEvent使用以下方法明确过滤

from zope.container.interfaces import IContainerModifiedEvent

if IContainerModifiedEvent.providedBy(event):
    return

这将验证接口,从而可以对该接口的任何实现进行工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

处理侦听并触发事件的元素/对象的最佳方法是什么?

来自分类Dev

如何在jquery事件处理程序上动态获取mvc模型?

来自分类Dev

如何在事件处理程序上更改 React 中的特定组件

来自分类Dev

如何从语法上区分php中的变量和对象

来自分类Dev

Worksheet_change事件处理程序更改单元格;如何阻止它触发自身?

来自分类Dev

Worksheet_change事件处理程序更改单元格;如何阻止它触发自身?

来自分类Dev

所有事件处理程序被同步触发是什么意思?

来自分类Dev

如何在点上区分不同的叠加层

来自分类Dev

如何在视觉上区分weechat的活动窗口?

来自分类Dev

如何在启动菜单上区分两个系统

来自分类Dev

如何在动作处理程序中获取原始事件对象?

来自分类Dev

事件处理程序背后的魔力是什么?

来自分类Dev

JS:为什么可以在事件处理程序中访问 Event 对象而不在参数中接受它?

来自分类Dev

触发后如何删除事件处理程序?

来自分类Dev

使用自定义事件对象触发事件处理程序

来自分类Dev

全局事件处理程序没有详细信息是否引发事件的对象是在事件处理程序中创建的

来自分类Dev

如何区分 EventEmitter 和事件处理程序方法?

来自分类Dev

在触发处理程序之前扩展jQuery事件对象

来自分类Dev

为什么我的委派事件处理程序不触发?

来自分类Dev

自定义事件由同一事件处理程序触发了它的缓存

来自分类Dev

如何检查对象是否不是最后一个以及如何处理它?

来自分类Dev

如何区分事件处理程序以处理复选框更改事件

来自分类Dev

如何在事件上创建DOM元素,然后阻止事件处理程序在DOM元素存在之前触发?

来自分类Dev

未触发事件处理程序

来自分类Dev

未触发事件处理程序

来自分类Dev

C#单击事件处理程序上缺少发件人对象引用

来自分类Dev

“ this”作为对象成员身份而不是事件处理程序上的节点引用?

来自分类Dev

事件处理程序的正确名称是什么?onClick或handleClick?

来自分类Dev

jQuery中的事件处理程序是什么意思

Related 相关文章

  1. 1

    处理侦听并触发事件的元素/对象的最佳方法是什么?

  2. 2

    如何在jquery事件处理程序上动态获取mvc模型?

  3. 3

    如何在事件处理程序上更改 React 中的特定组件

  4. 4

    如何从语法上区分php中的变量和对象

  5. 5

    Worksheet_change事件处理程序更改单元格;如何阻止它触发自身?

  6. 6

    Worksheet_change事件处理程序更改单元格;如何阻止它触发自身?

  7. 7

    所有事件处理程序被同步触发是什么意思?

  8. 8

    如何在点上区分不同的叠加层

  9. 9

    如何在视觉上区分weechat的活动窗口?

  10. 10

    如何在启动菜单上区分两个系统

  11. 11

    如何在动作处理程序中获取原始事件对象?

  12. 12

    事件处理程序背后的魔力是什么?

  13. 13

    JS:为什么可以在事件处理程序中访问 Event 对象而不在参数中接受它?

  14. 14

    触发后如何删除事件处理程序?

  15. 15

    使用自定义事件对象触发事件处理程序

  16. 16

    全局事件处理程序没有详细信息是否引发事件的对象是在事件处理程序中创建的

  17. 17

    如何区分 EventEmitter 和事件处理程序方法?

  18. 18

    在触发处理程序之前扩展jQuery事件对象

  19. 19

    为什么我的委派事件处理程序不触发?

  20. 20

    自定义事件由同一事件处理程序触发了它的缓存

  21. 21

    如何检查对象是否不是最后一个以及如何处理它?

  22. 22

    如何区分事件处理程序以处理复选框更改事件

  23. 23

    如何在事件上创建DOM元素,然后阻止事件处理程序在DOM元素存在之前触发?

  24. 24

    未触发事件处理程序

  25. 25

    未触发事件处理程序

  26. 26

    C#单击事件处理程序上缺少发件人对象引用

  27. 27

    “ this”作为对象成员身份而不是事件处理程序上的节点引用?

  28. 28

    事件处理程序的正确名称是什么?onClick或handleClick?

  29. 29

    jQuery中的事件处理程序是什么意思

热门标签

归档