使用jQueryUI和闭包编译器

时间:2011-05-26 05:55:55

标签: javascript jquery-ui closures google-closure-compiler

在使用闭包编译器进行缩小后,我无法获得使用jQuery UI的js应用程序。

我做了什么:

  1. 转到here并加载jqueryui js文件
  2. 要求extern jQuery.ui
  3. 将结果复制到文件并将其用作外部文件
  4. 然而,该应用程序破了。对话框不再正确显示。爆炸效果无法正常工作,并且创建了多个对话框。有趣的是,自创建对话框以来,jQuery UI本身有所改进。这只是应用程序行为不端。

    我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

链接的externs提取器似乎无法从jQuery样式文件中提取externs。这很可能是因为jQuery使用“extend”方法来分配对象,并且该工具无法识别这些属性也需要被激活。

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

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

会变成

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

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

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