[英]jquery not working when i'm not putting it inside a jQuery(document).ready
[英]document ready not working when I have 2 jquery libraries
我使用了一个插件,其中包括
jquery-1.12.4.min.js
作为其资源之一。 但在我的项目中,我使用
jquery-3.4.1.min.js。
为了让他们没有冲突,我这样做了:
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script>var $x = jQuery.noConflict();alert("Version: "+$x.fn.jquery);</script>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>var $y = jQuery.noConflict();alert("Version: "+$y.fn.jquery);</script>
即使函数noConflict()
正在工作 - 由于可以在警报中看到相应 jqueries 的版本这一事实,我也会收到指向$(document).ready(function(){
。我想我有指定我将使用哪个版本?如果是,如何?我找不到语法来做到这一点。请帮助...
首先,最好将$.noConflict()
替换$.noConflict()
$.noConflict(true)
以表明您希望从冲突名称中删除所有 jQuery 实例。
所有这一切,使得使用$y
和$x
来引用具有确切版本的 jQuery 成为可能。
所以而不是$(document).ready(function(){
你会做$y(document).ready(function(){
或$x(document).ready(function(){
您已正确使用 noConflict 函数,但不能在变量名中使用 '$',因为调用 noConflict 函数会释放 '$' 变量以供其他 javascript 框架使用。
将您的变量名称更改为 x 和 y 并尝试一下。
您也不能使用$(document).ready(function(){
因为在您的情况下,您已经将 jquery $ 变量的别名更改为 x 和 y 。
<html> <head> <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> <script>var x = jQuery.noConflict();</script> <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> <script>var y = jQuery.noConflict();</script> <script type="text/javascript"> x(document).ready(function(){ alert('ready from :' + x.fn.jquery); }); y(document).ready(function(){ alert('ready from :' + y.fn.jquery); }); </script> </head> </html>
感谢你付出的努力。 我已经想出了如何在我写的以前的代码上保留 $ 。 我所做的是:
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script>var $ = jQuery.noConflict();alert("Version: "+$x.fn.jquery);</script>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>var $y = jQuery.noConflict();alert("Version: "+$y.fn.jquery);</script>
由于我使用 $ 作为我一直用于我的项目的 jquery 版本的容器,因此我不需要更改原始代码中以 $ 开头的代码。
但是为了使用我与我的项目集成的插件使用的旧 jquery 版本,我必须使用 $y ( ei $y(document).ready(function(){ }); 和 $y('#field1id ').val();)。
我的项目现在已经开始工作了。 感谢您的投入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.