![](/img/trans.png)
[英]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.