首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在外部JavaScript中jQuery无法正常工作

在外部JavaScript中jQuery无法正常工作
EN

Stack Overflow用户
提问于 2011-05-21 13:27:27
回答 2查看 35.6K关注 0票数 11

我是jQuery的新手,遇到了一些奇怪的问题。我使用的是jQuery的changeclick方法。它们在我的<script>标记中的HTML文件中工作得很好。

像这样:

代码语言:javascript
复制
<script>
    $("select,input").change(function ()
    {
        // My code and some alerts
    });
</script>

当我在没有<script>的外部JavaScript代码中复制相同的代码,并将其导入到我的HTML中时,它根本不起作用。

在外部JavaScript代码中使用jQuery需要进行哪些更改?

PS:在相同的外部JavaScript代码中出现的一些其他非jQuery函数可以成功地从HTML中调用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-21 13:32:40

首先,你不希望在外部JavaScript文件中有标签,如果我是这样读你的帖子的话。

jQuery的诀窍在于您的代码被设置为立即执行。

您希望包装脚本,以便它在文档准备就绪时加载,如下所示:

代码语言:javascript
复制
$(document).ready(function(){
    $("select,input").change(function ()
    {
        // My code and some alerts
    })
});

并且您希望确保文件是在全局之后加载的(否则将不会设置$ jQuery )。

新增功能:

下面是您的HTML应该是什么样子:

代码语言:javascript
复制
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" src="jscript/myExternalJs.js"></script>

下面是您的脚本代码应该是什么样子(请注意,JavaScript文件中没有脚本标记):

代码语言:javascript
复制
$(document).ready(function(){
    $("select,input").change(function ()
    {
        // My code and some alerts
    })
    // Other event handlers.
});

至于你的其他脚本...这在某种程度上取决于你在做什么。最重要的是,不要试图将事件侦听器连接到还不存在的对象上,这就是我们使用document.ready的原因。

票数 16
EN

Stack Overflow用户

发布于 2011-05-21 13:30:49

您是否确保在您自己的jquery代码之前定义了jquery?

在处理jquery时,您还应该确保DOM已准备就绪:

代码语言:javascript
复制
$(document).ready(function() {
    $("select,input").change(function() {
        // my code and some alerts
    });

    // more code here if needed, etc.
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6079811

复制
相关文章

相似问题

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