jQuery-UI中事件生成是如何生成的?

4

我想了解jquery-ui可排序小部件如何生成事件?

例如,让我们看看事件beforeStop。 我的问题是:

  1. 为什么要使用this._trigger("stop", event, this._uiHash());而不是this.trigger("stop", event, this._uiHash());

  2. _trigger函数是什么意思?


这两个函数是不同的,.trigger 作为 jQuery 函数用于触发任何事件,而且它是公开的。然而,_trigger 看起来是 jQuery UI 内部使用的函数,没有直接暴露出来。 - Selvakumar Arumugam
1个回答

3

_trigger() 是所有 jQuery UI 组件继承的方法。它在幕后调用了 jQuery 的 trigger() 方法,但是增加了以下功能:

  • 事件总会在组件所增强的元素上触发(事件对象的 target 属性会相应更新)。

  • 触发的事件名称会添加组件前缀(例如,在 sortable 组件上调用 _trigger("stop") 实际上会触发 sortstop 事件)。

  • 如果已注册的处理程序之一返回 false 或对事件调用了 preventDefault(),则此函数将返回 false

你可以在源代码这里的 476 到 503 行查找完整的 _trigger() 实现。


1
只是想让Frederic知道他使用的链接已经失效了。 - userfuser
@userfuser,这就是我第一次在GitHub上链接的结果,谢谢你提醒我 :) - Frédéric Hamidi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接