0

我有一个用 ExtJS 构建的大型应用程序,并且正在寻找从应用程序中的任何位置处理自定义事件的最佳方法。例如,我可能想在应用程序的某些文本中放置一个锚标记,这将在我的应用程序中打开一个自定义组件。目前我会听到身体上的点击,如果目标有一个以某种格式应用到它的 css 类,我会使用它来执行一个动作。

例如我可能有:

<a class="ACTION-View-Customers">View Customers</a>

我的事件处理程序会将类名分开并执行操作。这种方法的问题是很难将许多参数传递给处理程序。我建议在锚的 class 或 href 标记中使用 JSON,如下所示:

<a href="#" class="{ action: 'View', options: { name: 'Customers', type: 'All' } }">View Customers</a>

你能想到这种方法的任何问题并提出任何替代方案吗?谢谢。

4

3 回答 3

1

如果有帮助的话,我个人不会在 HTML 本身中使用额外的元数据。我会将特定 ID 应用于特定目的的链接,并将点击事件绑定到该对象。我还发现 DomQuery 对象(需要查找和引用锚点)很有趣。由于我通常将 JQuery 适配器与 Ext JS 一起使用,因此我将使用 JQuery 的选择器来定位特定的 DOM 元素,并使用 JQuery 的绑定函数 [.click(fn)],同时在函数本身内部使用 Ext。JQuery 和 Ext JS 是一个很好的组合,尤其是新的 JQuery 1.3.1,它确实加快了速度。

于 2009-02-06T18:56:15.057 回答
0

我建议使用 HTML5 的data-属性。例如:

<a href="#" data-event="{ action: 'View', options: { name: 'Customers', type: 'All' } }">View Customers</a>

var eventsource = link.getAttribute("data-event");

高温高压

于 2009-02-07T16:59:45.273 回答
0

您可能知道,HTML 标签接受任何命名属性。因此,您可以创建一些专门调用的属性并将任何值传递给它们(fe my-bogus-param="something"),这样您就可以开发任何复杂的参数传递系统。然后您可以在事件处理程序中解析这些属性。

于 2009-02-09T06:58:30.130 回答