我正在处理的自定义控件包含jquery ui 1.9.2,但它应该插入的项目可以包含任何版本。那么,有什么方法可以改变库中的东西,或者我可以创建我的jquery ui版本的实例并通过该实例调用我需要的函数?比如,例如,我创建了一个名为“JQUI19”的实例,然后让我说我将函数组合称为
$('#someElement').JQUI19.combobox();
或以任何其他方式。我记得我在某个地方看到类似的事情就像
一样myJQ('#someElement').combobox();
但不记得我在哪里看到了。
答案 0 :(得分: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);
})();
}
答案 1 :(得分:0)
在Jquery库中,在最后一行之后,键入
var mySelector = $;
在您的页面中包含其他版本后,请添加其他版本。
现在,在你想要使用这个jquery版本的所有脚本中(你甚至可以使用不同版本的jquery ui和其他库),用mySelector替换$。使用replaceall,但会有几个地方,比如在正则表达式匹配函数中,你想要将mySelector替换回$。这个问题困扰了我很长一段时间。它刚刚解决了。
注意:请确保不要替换jQuery原始脚本中的任何$。