页面原引用了jQuery2.4.1版本,后来需要引用第三方JS库内的一个表格控件,该库需要用到jQuery3.5.1版本,我如何处理才能正常使用该控件呢?
我使用了jQuery.noConflict(true) 方法保留了jQuery3.5.1并且用下面方式成功初始化了表格控件
<script src="~/lib/jquery/2.4.1/jquery.min.js"></script>
<script src="~/lib/jquery/3.5.1/jquery.min.js"></script>
<script src="~/lib/第三方控件.js"></script>
<script> var jq351 = jQuery.noConflict(true); </script>
<script>
jq351(function($){
//初始化第三方表格控件
xxxxxxxx
});
</script>
但是在调用控件自带一些函数时,提示我找不到该方法,应该是在【第三方控件.js】 里面使用了$ 而不是 jq351 导致的, 目前我只是知道如果把 【第三方控件.js】 里所有$ 替换成jq351就能正常使用,但应该还有比较好的解决方法把,求大神帮忙解答下,谢谢
方法:
1.把jQuery2.4.1版本 去掉 看自己的函数是否会受影响
2.如果1方法不行,去掉jQuery3.5.1 ,保留Query2.4.1版本 然后再试
都试过不行,都会有一些函数提示出错,因为只用到第三方一个控件,最好还是保留2.4.1,这个关联的函数比较多
捋清js代码的先后顺序应该可行
jQuery2.4.1
依赖jQuery2.4.1的其它代码
jQuery3.5.1
第三方控件
依赖jQuery3.5.1的代码
按照这个顺序排列
从【jQuery3.5.1】开始到后面我是这个顺序,第三方控件也会依赖jQuery3.5.1,但是调用var jq351 = jQuery.noConflict(true); 以后$就是jQuery2.4.1版本的了,这时所有【第三方控件】用到$的就没法用了,得替换成jq351,我是不知道怎么才能把【第三方控件】 中的函数放到jq351这个范围里去
@弱鸡1: 不要var jq351 = jQuery.noConflict(true); 这一行呢
@by.Genesis: 不要这一行,那么当前$是jQuery3.5.1版本, 【jQuery3.5.1】这一行前面跟2.4.1有关的函数又会提示找不到
别人这样的,参考参考。
感觉2.4和3.5之间需要做判断,什么情况下用哪个
– kouf 3年前