我正在使用jquery的库组。我创建了一个名为(script.php)的php文件,并在此文件中包含了所有jqueries库。无论何时何地我需要Jquery,我只需要包含这个script.php文件。虽然一切进展顺利,但我的图书馆与其他图书馆相互冲突。如果我在$(document).ready(function() {
之前使用$ .noConflict(),或者在$(document).ready(function() {
之后很少其他库开始冲突。我给出错误的特定文件是,<script type="text/javascript" src="js/toggle.js"></script>
它有以下代码。无论如何,我可以修改代码或解决问题。
$(document).ready(function() {
$('.toggle_block').toggleElements({
fxAnimation:'slide',
fxSpeed:'fast',
className:'toggler'
});
});
答案 0 :(得分:0)
如果您有另一个使用$
符号的库,那么您可以将$
恢复到jQuery运行之前的状态,方法是在包含jQuery之后将其恢复正确:
$.noConflict()
然后,您可以像这样使用jQuery
而不是$
,并将$
符号保留为其他库:
jQuery(document).ready(function() {
jQuery('.toggle_block').toggleElements({
fxAnimation:'slide',
fxSpeed:'fast',
className:'toggler'
});
});
如果你想要的话,你当然可以为jQuery创建自己的缩写符号:
var $j = jQuery;
$j(document).ready(function() {
$j('.toggle_block').toggleElements({
fxAnimation:'slide',
fxSpeed:'fast',
className:'toggler'
});
});
重要的问题是,一次只能有一个库使用$
符号。还有其他解决方法,例如:
(function($) {
// in this block, $ is an argument variable that has been temporarily
// given the value of jQuery without interfering with the value of $ outside
// this block of code
$(document).ready(function() {
$('.toggle_block').toggleElements({
fxAnimation:'slide',
fxSpeed:'fast',
className:'toggler'
});
});
}(jQuery));
答案 1 :(得分:0)
jQuery.noConflict()的API documentation说明了这一点:
如果我们需要在jQuery旁边使用另一个JavaScript库,我们可以 通过调用将$的控制权返回给另一个库 $ .noConflict()
这意味着只要您运行$.noConflict()
,$
变量就不再是jQuery
的别名。因此这段代码:
$(document).ready(function() {
// ...
});
...正在尝试将jQuery方法与其他库一起使用。
你可能想要这个:
// In the outer scope, we use jQuery
jQuery(document).ready(function($) {
// In this scope we can use $
});
答案 2 :(得分:-1)
jQuery.noConflict()
返回jQuery
的实例。致电noConflict
没有任何意义。
出于使用noConflict
的目的,
var $q = jQuery.noConflict(); //$q = independent instance of jQuery
$q(document).ready(function () {
$q('.toggle_block').toggleElements({
fxAnimation: 'slide',
fxSpeed: 'fast',
className: 'toggler'
});
});