在使用闭包编译器缩小后,我无法让使用 jQuery UI 的 js 应用程序工作。
我做了什么:
- 去这里加载jqueryui js文件
- 要求外部 jQuery.ui
- 将结果复制到文件并将其用作外部文件
不过,该应用程序坏了。对话框不再正确显示。爆炸效果无法正常工作,并创建了多个对话框。有趣的是,jQuery UI 本身有点工作,因为创建了对话框。只是该应用程序行为不端。
我错过了什么吗?
在使用闭包编译器缩小后,我无法让使用 jQuery UI 的 js 应用程序工作。
我做了什么:
不过,该应用程序坏了。对话框不再正确显示。爆炸效果无法正常工作,并创建了多个对话框。有趣的是,jQuery UI 本身有点工作,因为创建了对话框。只是该应用程序行为不端。
我错过了什么吗?
链接的外部提取器似乎无法从 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 代码具有挑战性的几个原因之一。