我们的项目在 jquery 1.3.2 上运行,是的,一个非常旧的版本,我知道。无论如何,我们现在不打算升级它。我们现在只需要使用 jquery选择的插件(下载链接 - https://github.com/harvesthq/chosen),它至少需要 jquery 1.4。因此,我按照以下解决方案在同一页面上加载两个版本的 jquery -
https://stackoverflow.com/a/1566644/351903
但我无法在较新版本的 jquery 上调用 selected 。这是我所做的 -
1.在jquery加载部分
<script type="text/javascript" src="/js/jquery.js"></script>
<!-- Added for using jQuery chosen plugin -->
<script type="text/javascript" src="/js/jquery-1.4.min.js"></script>
<script type="text/javascript">
var jQuery_1_4 = $.noConflict(true);
</script>
注意 - 我没有为旧版本的 jquery 编写以下内容,因为我不想替换我写过类似内容$("something").somefunc()
的任何地方jQuery_1_3_2("something").somefunc()
-
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>
2.然后,在插件调用部分
<link rel="stylesheet" type="text/css" href="/css/chosen.css"/>
<!-- <script type="text/javascript" src="/js/jquery.chosen/chosen.jquery.min.js"></script> -->
<script type="text/javascript" src="/js/jquery.chosen/chosen.jquery.js"></script>
<script type="text/javascript">
jQuery_1_4(document).ready(function()
{
jQuery_1_4("select#user_id").chosen(); //Trying to call chosen on the newer version of jquery
});
</script>
但我收到了这个错误jQuery_1_4("select#user_id").chosen is not a function
。
然而,这工作正常 - alert("see"+jQuery_1_4("select#user_id").attr("id"));
。
所以,问题似乎只是在使用插件时,可能我必须在插件代码中做一些调整,可能是用?替换一些$
s jQuery_1_4
但这听起来不太好,我不确定什么是正确的方法。