jQuery与多个库冲突?

时间:2012-07-06 18:00:28

标签: jquery

Link to website

我确信冲突发生在我的网页滑动和图片滑块之间..

以下是页面幻灯片的代码:

<ul>
    <li>
        <a href="javascript:$.pageslide({ direction: 'right', href: '_secondary.html' })" class="first">Slide to the right, and load content from a secondary page.</a>
    </li>

    <li>
        <a href="javascript:$.pageslide({ direction: 'left', href: '/template/_secondary.html' })" class="second">Open the page programatically.</a>
    </li>
</ul>
<script>
var jq171 = jQuery.noConflict();
</script>
<script src="/template/js/jquery-1.7.1.min.js"></script>
<script src="/template/js/jquery.pageslide.js"></script>
<script>
    /* Default pageslide, moves to the right */
    $(".first").pageslide({ direction: "right"});

    /* Slide to the left, and make it model (you'll have to call $.pageslide.close() to close) */
    $(".second").pageslide({ direction: "left"});
</script>`

以下是图片滑块:此代码引用了两个jQuery库 - v1.5.1&amp;轨道-1.2.3

<div class="container" style="margin-top:20px; margin-left:10px;">
    <div id="featured"> 
        <a href=""><img src="*****" /></a>
        <a href=""><img src="*****" /></a>
        <a href=""><img src="*****" /></a>
        <a href=""><img src="*****" /></a>
        <a href=""><img src="*****" /></a>
    </div>

有一分钟,我让他们一起工作,但我不确定是什么导致了冲突。我已经尝试了不同版本的无冲突脚本..如果您需要更多信息来帮助我,请告诉我。谢谢!

4 个答案:

答案 0 :(得分:3)

由于库脚本加载速度的差异,代码有时会工作,而不是其他代码。有时候,当你开始使用它时,它的加载速度足够快,有时则不然。这就是您应该将初始代码放在ready块中的原因:

<script src="/template/js/jquery-1.7.1.min.js"></script>
<script src="/template/js/jquery.pageslide.js"></script>
<script type="text/javascript">
    var jq171 = jQuery.noConflict();
    jq171.ready(function ($) {
        /* Default pageslide, moves to the right */
        $(".first").pageslide({ direction: "right"});

        /* Slide to the left, and make it model (you'll have to call $.pageslide.close() to close) */
        $(".second").pageslide({ direction: "left"});
    });
</script>

另外,我建议您重新考虑在同一页面甚至同一网站上使用两个库。一个就够了!

<强>文档

答案 1 :(得分:2)

在加载jQuery后使用noConflict并使用它而不是$()

var jq171 = jQuery.noConflict();
jq171(document).ready(function () {
   jq171(".first").pageslide({ direction: "right"});
   // ....
})

答案 2 :(得分:1)

在传递$变量的状态下运行jQuery。

仅使用一个jQuery库,最好是CDN最新的

jQuery.noConflict();
jQuery.ready(function ($) {
    /* Default pageslide, moves to the right */
    $(".first").pageslide({ direction: "right"});

    /* Slide to the left, and make it model (you'll have to call $.pageslide.close() to close) */
    $(".second").pageslide({ direction: "left"});
});

// Outside the ready state $ calls the other library.

答案 3 :(得分:1)

您有三种不同版本的jQuery加载。忘了用noConflict来玩它们,没有理由加载三个版本。