1

我正在处理的自定义控件包含 jquery ui 1.9.2,但它应该插入的项目可以包含任何版本。那么,有什么方法可以更改库中的某些内容,或者我可以创建我的 jquery ui 版本的实例并通过该实例调用我需要的函数?例如,我创建了一些名为“JQUI19”的实例,然后假设我将函数组合框称为

$('#someElement').JQUI19.combobox();

或以任何其他方式。我记得我在某个地方看到过类似的事情

myJQ('#someElement').combobox();

但不记得我在哪里看到的。

4

2 回答 2

3

永远不要使用两个版本的 UI。

如果您正在打包将被多个客户端重用的东西,并且想要检查客户端是否已经有 jquery UI 可用,那么您可以使用这样的东西:

if (typeof jQuery.ui !== 'undefined'){
// Add Google UI Library To Head
(function() {
  var jqUiScript = document.createElement('script'); jqUiScript.type = 'text/javascript'; jqUiScript.async = true;
  jqUiScript.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(jqUiScript, s);
})();


}
于 2013-05-14T06:38:12.743 回答
0

在 Jquery 库中,在最后一行之后,键入

var mySelector = $;

在您的页面中包含此版本后,请包含其他版本。

现在,在您想与此 jquery 版本一起使用的所有脚本中(您甚至可以使用不同版本的 jquery ui 和其他库),将 $ 替换为 mySelector。使用replaceall,但在几个地方,比如在正则表达式匹配函数中,您希望将mySelector 替换回$。这个问题困扰了我很长时间。它刚刚得到解决。

注意:请确保不要替换 jQuery 原始脚本中的任何 $。

于 2013-05-14T10:40:10.673 回答