首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以有两个相互重叠的JQuery函数,在一个页面中运行吗?

问我可以有两个相互重叠的JQuery函数,在一个页面中运行吗?
EN

Stack Overflow用户
提问于 2012-05-22 22:51:37
回答 2查看 210关注 0票数 0

嗨,我在一个html页面中实现了2个jquery时遇到了一些问题,这是我使用的查询:

代码语言:javascript
复制
<script language="Javascript" type="text/javascript" src="js/jquery.blinds-0.9.js"></script>

 <script type="text/javascript">                  //running the script for blinds
    $(window).load(function () {
            // start the slideshow
    $('.slideshow').blinds();
    })
    </script>



<script language="Javascript" type="text/javascript" src="jquery.min.js"></script>
<script language="Javascript" type="text/javascript" src="jquery-ui.min.js"></script>

<script type="text/javascript">              //running the script for accordion
$(document).ready(function() {
$("#accordion").accordion();
});
</script>

问题是,如果我用html实现它们,那么只有一个脚本可以运行(无论是accordion还是blinds),有谁知道如何修改它们,以便所有的jquery都可以运行,并且我可以在整个页面中重用它们?

例如,如果我在头部添加accordion js引用,百叶窗就不会运行。

非常感谢您的回复,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-22 22:56:09

只运行一个,因为另一个是在加载jQuery之前执行的

尝试:

代码语言:javascript
复制
<script src="jquery.min.js"></script>              <!--jQuery-->
<script src="jquery-ui.min.js"></script>           <!--jQueryUI plugin-->
<script src="js/jquery.blinds-0.9.js"></script>    <!--blinds plugin-->
<script>                                           <!--your scripts-->
    $(function() {
        $('#accordion').accordion();
        $('.slideshow').blinds();
    });
</script>

和jQueryUI has a built-in blinds effect。如果百叶窗插件有同样的效果,你可能就不需要它了。

票数 4
EN

Stack Overflow用户

发布于 2012-05-22 23:05:56

首先,尝试清理调用脚本的顺序。让jQuery首先加载,然后所有其他库和自定义脚本最后加载。您可能还希望将其保存到外部JS文件中,以便改进维护。

代码语言:javascript
复制
<script type="text/javascript" src="js/jquery.blinds-0.9.js"></script>
<script type="text/javascript" src="jquery-ui.min.js"></script>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="path/to/your/javascript/foo.js"></script>

此外,属性language="Javascript"是冗余的,可以安全地删除。

在foo.js文件中,使用以下内容:

代码语言:javascript
复制
$(document).ready(function () {
    // start the slideshow & accordion
    $('.slideshow').blinds();
    $("#accordion").accordion();
});

这里的不同之处在于您使用$(document).ready()而不是$(window).load()。此外,您只需要调用$(document).ready()一次,而不是两次。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10704498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档