如何解决两个jQuery插件之间的冲突

时间:2012-08-10 14:31:43

标签: jquery

总jQuery新手,所以放轻松!

我在<head>中有以下jQuery文件: -

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery.ui.core.min.js"></script>
<script type="text/javascript" src="jquery.ui.widget.min.js"></script>
<script type="text/javascript" src="jquery.ui.mouse.min.js"></script>
<script type="text/javascript" src="jquery.ui.sortable.min.js"></script>
<script type="text/javascript" src="jquery.ui.tabs.min.js"></script>
<script src="./thesaurus/js/jquery.thesaurus.js" type="text/javascript"></script>

以下doc就绪电话: -

<script type="text/javascript">
$(document).ready(function()
{
$('#container').Thesaurus
({
   effect: 'fade',
   caseSensitive: true // Used when matching found terms against loaded ones
});
   var page2jQueryTabs1Opts =
   {
      event: 'click',
      collapsible: false
   };
   $("#page2jQueryTabs1").tabs(page2jQueryTabs1Opts);
});
</script>

我遇到的问题是同义词库完美地工作但jQuery选项卡部分没有。

我一直在用jQuery.noconflict()进行实验(几个小时!),但我怀疑我一直在浪费时间,因为我只使用一个jQuery实例?我改变名称空间(我认为这就是我一直在尝试的东西!!)已经惨遭失败。为了记录,我能够编辑thesaurus.js并且我可以控制doc ready的第一部分,但我无法更改doc ready的序列/顺序 - 即$('#container').Thesaurus必须首先出现我无法编辑doc ready的jQuery Tab部分。

我没有继续在黑暗中用试验和错误编辑刺伤我问这个问题......我需要对标记做什么更改...或者thesaurus.js文件(found here)。

现在有些阿司匹林了!

编辑:Test page

2 个答案:

答案 0 :(得分:0)

编辑:抱歉。我认为firebug在本地更新并执行了代码,但似乎它没有这样做...请尝试下面的代码,让我知道它是否有效......

我在Firebug中尝试过并且有效。试试这个:

$(document).ready(function(){

    var page2jQueryTabs1Opts = {
       event: 'click',
       collapsible: false
    };
    $("#page2jQueryTabs1").tabs(page2jQueryTabs1Opts);

    $.noConflict();

    $('#container').Thesaurus({
       effect: 'fade',
       caseSensitive: true // Used when matching found terms against loaded ones
    });

});

我只是转换了标签和词库声明,并在它们之间加了一个$ .noConflict()。

答案 1 :(得分:0)

我无法使用此处的任何jQuery no.Conflict()选项或外部研究来解决冲突,但我只是通过将行$('#container').Thesaurus({更改为$('.someclass').Thesaurus({来解决我的问题,以便而不是在DIV中调用它使用CSS类。一切都是现在的桃子:)

非常感谢那些试图提供帮助的人 - 一如既往,非常感谢。