同一页面上的2个脚本中断

时间:2011-07-05 13:09:22

标签: javascript jquery asp.net

我的网站有自定义jquery以及灯箱查询。但似乎我无法让两者同时工作。它总是有一个工作,取决于它们的顺序。继承人的代码

<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript" src="scripts/jquery.lightbox-0.5.js"></script>
<link rel="stylesheet" type="text/css" href="css/jquery.lightbox-0.5.css" media="screen" />
<script type="text/javascript">
        $(function () {
            $('a[@rel*=lightbox]').lightBox({
                maxHeight: screen.height * 0.6,
                maxWidth: screen.width * 0.6
            });
        });
</script>
    <script  type="text/javascript" src="./Scripts/jquery-1.3.2.js" ></script>   
    <script type="text/javascript">
        $(document).ready(function() {
            /* Menu */
            $("#menu li:last").css("margin-right", "0");
            $("#menu ul.sub li:last").css("margin-right", "0");
            $("#menu li#menues a").hover(function() {
                $(this).siblings(".sub").fadeIn(200);
            });
            $("#menu").hover(function() { }, function() {
                $(".sub").fadeOut(200);
            });
        });
</script>

3 个答案:

答案 0 :(得分:3)

你已经把jQuery包括了两次..

删除此行代码

 <script  type="text/javascript" src="./Scripts/jquery-1.3.2.js" ></script> 

答案 1 :(得分:1)

你的专栏:

$("#menu li#menues a").hover(function() {
    $(this).siblings(".sub").fadeIn(200);
});

使用hover() http://api.jquery.com/hover/#hover2

的单个参数调用

这是在jQuery 1.4中添加的,你使用的是1.3.2。

或者:

更新您的jQuery。


或使用两个参数功能:

$("#menu li#menues a").hover(function() {
    $(this).siblings(".sub").fadeIn(200);
}, null);

这样,只有在mouseenter上调用匿名函数,如果你想在mouseleave上调用它,就改变params的顺序。

如果你想让它淡入/淡出:

$("#menu li#menues a").hover(
    function() {
        $(this).siblings(".sub").fadeIn(200);
    },
    function() {
        $(this).siblings(".sub").fadeOut(200);
    });

如果你需要对两者使用相同的功能,在使用jQuery 1.3.2时使用:

function menuLinkHover(){
    $(this).siblings(".sub").fadeIn(200);
}

$("#menu li#menues a").hover(menuLinkHover, menuLinkHover);

享受!

答案 2 :(得分:0)

有些脚本扩展了jQuery对象,看来Lightbox就是其中之一。

通过在页面加载时包含对jQuery脚本的引用两次:

  • jQuery对象将添加到DOM中,
  • 然后扩展为灯箱,
  • 然后将一个新的jQuery对象添加到没有扩展名
  • 的DOM中

因此依赖于lightbox的脚本将无法运行。

删除第二个jQuery script标记应该解决这个问题。