Dalam Jquery, $ ialah alias bagi JQuery Semua tempat di mana $ digunakan juga boleh digantikan dengan JQuery Sebagai contoh, $('#msg') adalah bersamaan dengan JQuery('#msg'). Walau bagaimanapun, apabila kami memperkenalkan berbilang perpustakaan js dan simbol $ juga ditakrifkan dalam perpustakaan js lain, maka akan berlaku konflik apabila kami menggunakan simbol $. Berikut ialah contoh memperkenalkan dua fail perpustakaan jquery.js dan prototype.js.
Kes pertama: jquery.js diperkenalkan selepas prototype.js, seperti:
Dalam kes ini, kami menulis perkara berikut dalam kod js kami:
$('#msg').hide();
Kes kedua: jquery.js diperkenalkan sebelum prototype.js, seperti:
<script src="jquery.js" type="text/javascript"/> <script src="prototype.js" type="text/javascript"/>
$('#msg').hide();
Yang berikut akan mula-mula memperkenalkan cara menggunakan simbol $ yang ditakrifkan dengan betul dalam perpustakaan js yang berbeza dalam kes pertama memperkenalkan fail perpustakaan js.
1. Gunakan JQuery.noConflict()
Fungsi kaedah ini adalah untuk membiarkan Jquery melepaskan pemilikan $ dan mengembalikan kawalan $ kepada prototype.js Kerana jquery.js diperkenalkan kemudian, ia adalah jquery yang akhirnya mengawal $. Nilai pulangannya ialah JQuery. Selepas memanggil kaedah ini dalam kod, kami tidak boleh menggunakan $ untuk memanggil kaedah jquery Pada masa ini, $ mewakili $ yang ditakrifkan dalam perpustakaan prototype.js. Seperti berikut:
Sejak itu, $ mewakili $ yang ditakrifkan dalam prototype.js $ dalam jquery.js tidak lagi boleh digunakan. Anda hanya boleh menggunakan nama penuh $ dalam jquery.js, JQuery.
Selepas menetapkan jQuery kepada mod tanpa konflik, anda boleh menetapkan alias untuk $:
<script src="prototype.js"></script> <script src="jquery.js"></script> <script>var $j = jQuery.noConflict();</script>
<script src="prototype.js"></script> <script src="jquery.js"></script> <script> jQuery.noConflict(); (function($) { // 这里依然可以继续使用 jQuery 的 $ })(jQuery); </script>
2. Sesuaikan alias JQuery
Jika anda mendapati ia menyusahkan untuk hanya menggunakan nama penuh JQuery selepas menggunakan kaedah JQuery.noConflict() dalam kaedah pertama, kami juga boleh mentakrifkan semula alias untuk JQuery. Seperti berikut:
var $j=JQuery.noConflict(); $j('#msg').hide();//此处$j就代表JQuery
3. Gunakan blok pernyataan, masih gunakan $ yang ditakrifkan dalam jquery.js dalam blok pernyataan, seperti berikut:
JQuery.noConflict(); JQuery(document).ready(function($){ $('#msg').hide(); //此时在整个ready事件的方法中使用的$都是jquery.js中定义的$. });
(function($){ ..... $('#msg').hide();//此时在这个语句块中使用的都是jquery.js中定义的$. })(JQuery)
<script src="jquery.js" type="text/javascript"/> <script src="prototype.js" type="text/javascript"/> <script type="text/javascript"> (function($){ ..... $('#msg').hide();//此时在这个语句块中使用的都是jquery.js中定义的$. })(JQuery) </script>
Kod
<script src="jquery.js" type="text/javascript"/> <script src="prototype.js" type="text/javascript"/> <script type="text/javascript"> (function($){ ..... $('#msg').hide(); //此时在这个语句块中使用的都是jquery.js中定义的$. })(JQuery) </script>