我是jQuery的新手,遇到了一些奇怪的问题。我使用的是jQuery的change和click方法。它们在我的<script>标记中的HTML文件中工作得很好。
像这样:
<script>
$("select,input").change(function ()
{
// My code and some alerts
});
</script>当我在没有<script>的外部JavaScript代码中复制相同的代码,并将其导入到我的HTML中时,它根本不起作用。
在外部JavaScript代码中使用jQuery需要进行哪些更改?
PS:在相同的外部JavaScript代码中出现的一些其他非jQuery函数可以成功地从HTML中调用。
发布于 2011-05-21 13:32:40
首先,你不希望在外部JavaScript文件中有标签,如果我是这样读你的帖子的话。
jQuery的诀窍在于您的代码被设置为立即执行。
您希望包装脚本,以便它在文档准备就绪时加载,如下所示:
$(document).ready(function(){
$("select,input").change(function ()
{
// My code and some alerts
})
});并且您希望确保文件是在全局之后加载的(否则将不会设置$ jQuery )。
新增功能:
下面是您的HTML应该是什么样子:
<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文件中没有脚本标记):
$(document).ready(function(){
$("select,input").change(function ()
{
// My code and some alerts
})
// Other event handlers.
});至于你的其他脚本...这在某种程度上取决于你在做什么。最重要的是,不要试图将事件侦听器连接到还不存在的对象上,这就是我们使用document.ready的原因。
发布于 2011-05-21 13:30:49
您是否确保在您自己的jquery代码之前定义了jquery?
在处理jquery时,您还应该确保DOM已准备就绪:
$(document).ready(function() {
$("select,input").change(function() {
// my code and some alerts
});
// more code here if needed, etc.
});https://stackoverflow.com/questions/6079811
复制相似问题