如何解决与另一个库的jquery冲突

时间:2014-06-19 21:35:55

标签: javascript jquery

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<link rel="stylesheet" href="../../fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="../../fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<script type="text/javascript" src="../../js/cufon-yui.js"></script>
<script type="text/javascript" src="../../js/TitilliumText.font.js"></script>
<script type="text/javascript" src="../../js/cufon-replace.js"></script>
<script type="text/javascript" src="../../js/shortcode.js"></script>
<script type="text/javascript" src="../../js/scripts.js"></script>
<script type="text/javascript" src="../../js/custom.js"></script>

</head>
...
<script type="text/javascript">
$(document).ready(function() {
$(".fancybox").fancybox();
});
</script>
</body>

请耐心等待我,因为我对Web开发很陌生并且刚刚投入到这个项目中。

我正在实现需要加载jQuery的fancybox。但是,与scripts.jscustom.js似乎存在某种类型的冲突,因为当我包含它们时fancybox不起作用。不幸的是,我需要包含这两个脚本。

我尝试在多个地方使用jQuery.noConflict();无济于事。我不知道从哪里开始

以下是两个问题.js文件(如果相关)。

custom.js:

http://pastebin.com/SBqGXAqR

scripts.js中:

http://pastebin.com/fz1GhaSH

3 个答案:

答案 0 :(得分:2)

检查

http://api.jquery.com/jquery.noconflict/

并注意,其他图书馆使用像jquery&#34; $&#34;

这样的持有人

如果你实现noConflict,你必须像这样调用jquery函数

jQuery(document).example();

答案 1 :(得分:2)

在加载custom.js之前调用jQuery.noConflict()或将其添加到文件的开头,然后修改每个

$(document).ready(function(){

jQuery(document).ready(function(){

在这些功能中,您可以像往常一样使用$

答案 2 :(得分:0)

Fancybox是一个jQuery插件,据说可与$选择器配合使用。您应该删除所有jQuery.noConflict()次来电,因为他们需要更改所有脚本中$的每次使用。

您是否检查过javascript控制台是否有错误?

如果控制台中没有信息,那么如果您首先缩小可能负责的代码量,则更容易识别问题。同时删除scripts.jscustom.js时Fancybox是否有效,然后检查它是否仅适用于custom.js已删除。一旦确定了负责的文件,请在负责的文件中注释掉下半部分模块并再次检查。继续添加一半模块并重新检查,直到找到导致问题的模块。