4

在使用闭包编译器缩小后,我无法让使用 jQuery UI 的 js 应用程序工作。

我做了什么:

  1. 这里加载jqueryui js文件
  2. 要求外部 jQuery.ui
  3. 将结果复制到文件并将其用作外部文件

不过,该应用程序坏了。对话框不再正确显示。爆炸效果无法正常工作,并创建了多个对话框。有趣的是,jQuery UI 本身有点工作,因为创建了对话框。只是该应用程序行为不端。

我错过了什么吗?

4

1 回答 1

1

链接的外部提取器似乎无法从 jQuery 样式文件中提取外部。这很可能是因为 jQuery 使用“扩展”方法来分配对象,并且该工具没有认识到这些属性也需要被外部化。

要解决此问题,您需要将扩展​​调用分解为直接分配:

jQuery.extend(jQuery.ui, { prop1: function() {}, prop2: function() {});

会成为

jQuery.ui = jQuery.ui || {};
jQuery.ui.prop1 = function() {};
jQuery.ui.prop2 = function() {};

此外,在处理 jQuery 和使用高级优化时,应完全避免使用“$”别名。

这只是使用 Closure-compiler 高级优化编译 jQuery 代码具有挑战性的几个原因之一。

于 2012-05-04T13:20:35.240 回答