jQuery Prototype冲突,替代解决方案

时间:2010-04-26 15:52:53

标签: javascript jquery prototypejs conflict

我有一个问题,因为我有条件地包括基于Prototype的Lightbox脚本,因为它比jQuery插件更好。

当然这两个图书馆存在冲突,但官方的解决方案对我来说并不可行,因为我不得不用替代的无冲突语法替换大量的$。

对我来说有没有其他解决方案,请记住,在我的情况下,使用jQuery比使用其他方式更好地使用Prototype?

3 个答案:

答案 0 :(得分:5)

如果您需要在与Prototype代码相同的窗口中使用jQuery代码(您的灯箱内容),那么您唯一的选择就是您不想使用的代码:{{ 3}}

如果您可以将灯箱内容限制为在iframe中工作,则只能在iframe中加载Prototype而不是主窗口。但我怀疑这对你正在做的事情来说太过分了。 : - )

问题是Prototype没有无冲突选项(现在没有活动计划提供一个)并且它不容易包含在范围函数中以包含符号(因为所有你真正关心的是全局符号,而不是原型扩展,jQuery可以随意使用)。也就是说,如果您使用prototype.js文件并将其与灯箱插件的文件相结合,将整个内容包装在一个范围函数中,然后寻找全局符号泄漏,您可能会这样做。这将是一项非常重要的练习,特别是如果你不熟悉Prototype的话。但是如果iframe的东西太过分了,那么这可能是从轨道上进行的。 : - )

答案 1 :(得分:2)

你可以尝试我在处理基于Prototype库的应用程序时所做的事情,但我想要一些jQuery功能。

jQuery(document).ready(function($)
{
    $("#BoxLabelRange").next('span').mouseenter(function()
    {
        $("#SearchInformation").slideDown();
    })
})

请参阅我添加到document.ready的参数,美元符号?在该函数调用中,您可以使用jQuery“$”别名而不会出现任何问题。适合我。祝你好运!

答案 2 :(得分:1)

你有没有考虑过看一下你认为效果不好的jQuery插件(我可以找到一对,可能就是这个:http://leandrovieira.com/projects/jquery/lightbox/),并试图让它在IE6中更好用?如果需要,请检查Prototype版本中的IE6特定修复程序。

我认为这比尝试让Prototype和jQuery一起玩得更好是一个更好的选择。