刚刚碰到一个问题:页面首部引用js文件如下:<script type="text/javascript" src="../../Scripts/prototype.js"></script>
<script type="text/javascript" src="../../Scripts/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="../../Scripts/lightbox.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.js"></script>此时,自己写的jquery代码工作正常,而lightbox失效。<script type="text/javascript" src="../../Scripts/jquery.js"></script>
<script type="text/javascript" src="../../Scripts/prototype.js"></script>
<script type="text/javascript" src="../../Scripts/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="../../Scripts/lightbox.js"></script>若将jquery.js的引用放到lightbox.js之上,则lightbox可正常工作,但自己写的jquery则失效。Lightbox版本为:
Lightbox v2.02
by Lokesh Dhakar - http://www.huddletogether.com
3/31/06jquery版本为:1.3.2所用浏览器为 IE 6.0 请问大家碰到过这样的问题吗?如何解决呢?

解决方案 »

  1.   

    1. 没必要混用, 混用说明你对你用的库挖掘还不够深入
    2. 一定要混用, google一下, 冲突的其实是$这个符号,jquery 提供了解决方案.具体不记得了
      

  2.   

    是的,以前用的很郁闷。
    因为lightbox.js中的$定义与Jquery中的$定义不一样。
    还是用他的思想自己写个Jquery插件吧。
      

  3.   

    的确如二位所说,是$符号的冲突,冲突存在于Prototype.js和jquery.js之间。我按照Jquery官网上的几种解决冲突的做法做了,但都没有成功。之前没有混用库的经验,甚至不知道Prototype.js和jQuery.js一样也是个库。昨天查询了一下,似乎也有jQuery版的lightbox插件。看来长久之计还是统一仅适用一个库。感谢二位的解答!
      

  4.   

    jQuery.noConflict();把$让给其他的库
      

  5.   

    我是按照下面链接中给出的解决方式做的:
    http://docs.jquery.com/Using_jQuery_with_Other_Libraries网上流传的方法和官网给出的方法一致。
      

  6.   

    我记得在jquery下有个lightbox的插件可以使用.
    不知道是不是lz需要的.
      

  7.   

    jQuery.noConflict() 
    概述
    运行这个函数将变量$的控制权让渡给第一个实现它的那个库。这有助于确保jQuery不会与其他库的$对象发生冲突。 在运行这个函数后,就只能使用jQuery变量访问jQuery对象。例如,在要用到$("div p")的地方,就必须换成jQuery("div p")。 注意:这个函数必须在你导入jQuery文件之后,并且在导入另一个导致冲突的库之前使用。当然也应当在其他冲突的库被使用之前,除非jQuery是最后一个导入的。示例
    描述:
    将$引用的对象映射回原始的对象。jQuery 代码:
    jQuery.noConflict();
    // 使用 jQuery
    jQuery("div p").hide();
    // 使用其他库的 $()
    $("content").style.display = 'none';描述:
    恢复使用别名$,然后创建并执行一个函数,在这个函数的作用域中仍然将$作为jQuery的别名来使用。在这个函数中,原来的$对象是无效的。这个函数对于大多数不依赖于其他库的插件都十分有效。jQuery 代码:
    jQuery.noConflict();
    (function($) { 
      $(function() {
        // 使用 $ 作为 jQuery 别名的代码
      });
    })(jQuery);
    // 其他用 $ 作为别名的库的代码描述:
    创建一个新的别名用以在接下来的库中使用jQuery对象。jQuery 代码:
    var j = jQuery.noConflict();
    // 基于 jQuery 的代码
    j("div p").hide();
    // 基于其他库的 $() 代码
    $("content").style.display = 'none';
      

  8.   

    感谢各位的回复!我改好了,两个库都可用了。解决$符号冲突的方法是没问题的,只是在将$符号换用别名后,由于粗心,自己写的js文件中,有一个$符号没有替换成别名,漏掉了,因此导致js脚本出错,于是罢工。以后可得仔细!
      

  9.   

    js沖突阿,$重新給個定義就ok