我们有一个大的 ExtJS(仍然是 ExtJs 2)应用程序,它在 Java EE 服务器上提供类似于 Windows 资源管理器的功能。我们现在评估实现一个新功能;我们可以将此功能基于 jQuery 插件。
是否建议在一个应用程序中使用 jQuery 和 ExtJs?还是我必须处理发生的副作用?
我们有一个大的 ExtJS(仍然是 ExtJs 2)应用程序,它在 Java EE 服务器上提供类似于 Windows 资源管理器的功能。我们现在评估实现一个新功能;我们可以将此功能基于 jQuery 插件。
是否建议在一个应用程序中使用 jQuery 和 ExtJs?还是我必须处理发生的副作用?
您将不必处理任何副作用。我这样做时遇到的唯一问题是,如果我试图对 Extjs 依赖的元素进行操作。只需确保当您开始使用 jQuery 操作时,您正在一个 div 中工作,而 extjs 不打算搞砸。最好的方法是从 Ext.Component 继承,然后在它提供的 div 中进行操作。Ext 在这个 div 内没有做任何事情,所以你应该没问题。如果需要,您也可以使用调整大小功能,但这并不是必需的。
我的公司在相当大的 Apache/Catalyst 站点上这样做没有问题。由于我们网站上有一些旧的原型内容,我们确实使用了 jQuery() 而不是 $()。
将 jQuery 保留在 jQuery 命名空间http://api.jquery.com/jQuery.noConflict/
像这样使用它: $.noConflict();
jQuery 仅将单个对象 (jQuery) 添加到窗口的上下文中,因此您不会有任何冲突。
问题:jquery 的一些第三方库可能依赖于静态网页组织。由于 ExtJS 组件可以动态添加到网页中——它们没有来自第三方库的功能。
解决方案:您必须在添加组件后运行此库的脚本(例如,使用 afterrender 事件)。然后你可以在这个 ext 组件上调用这些函数。