簡體   English   中英

當我有 2 個 jquery 庫時,文檔就緒無法工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM