基本Javascript/jQuery可以在jFiddle中使用,但不能在我的浏览器中使用
我对编程并不陌生,但我对Javascript和jQuery是新手 在我试图写最基本的东西时,我写了以下内容 如果我将jqueryinclude+myjavascript和HTML复制到jsFiddle,它就可以工作了。当您在下拉列表中选择某个内容时,会出现警报框 但是在我的浏览器中打开.html文件时,它不起作用。您可以全天更改选择,但不会发生任何事情 我觉得这是最基本的事情,但我还没弄明白。我犯了什么愚蠢的初学者错误?Javascript是客户端的,所以我认为它应该可以工作。我用的是Chrome,但IE中的结果是一样的。Javascript在两者中都是启用的基本Javascript/jQuery可以在jFiddle中使用,但不能在我的浏览器中使用,javascript,jquery,html,Javascript,Jquery,Html,我对编程并不陌生,但我对Javascript和jQuery是新手 在我试图写最基本的东西时,我写了以下内容 如果我将jqueryinclude+myjavascript和HTML复制到jsFiddle,它就可以工作了。当您在下拉列表中选择某个内容时,会出现警报框 但是在我的浏览器中打开.html文件时,它不起作用。您可以全天更改选择,但不会发生任何事情 我觉得这是最基本的事情,但我还没弄明白。我犯了什么愚蠢的初学者错误?Javascript是客户端的,所以我认为它应该可以工作。我用的是Chrom
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$('#selections').change(function() {
alert('Test');
});
</script>
</head>
<body>
<select id="selections">
<option>Options...</option>
<option value="zero">zero</option>
<option value="one">one</option>
</select>
</body>
</html>
$(“#选择”).change(函数(){
警报(“测试”);
});
选项。。。
零
一
将脚本标记放在正文的结束标记之前,它不起作用,因为在元素呈现为“#选择”之前,您正在绑定该元素
您必须将脚本放入$(document).ready()函数中。在JQuery中,这确保在加载页面的元素之后,所有事件都被附加到。请参阅下面的修订代码:
$(document).ready(function() {
$('#selections').change(function() {
alert('Test');
});
});
将脚本移动到BodyJSHiddle的末尾,效果很好:谢谢!正如Thomas所建议的,jQuery是否应该用$(document).ready()包装成最佳实践?页面底部的选项是性能最佳实践吗?最佳实践是将其放在一个单独的文件中,并附加在末尾,大约$(文档)。准备好了,通常的做法是用它包装代码,只是为了安全,但实际的方法是如果您在head中声明它,或者使用动态元素将其包装在document.ready中,否则就不需要了。之前页面底部的jQuery是否应该包装在$(document.ready()中?还是最好的做法呢?同时,将其放在性能测试之前是最佳实践吗?不一定。只要将它包装在$(document).ready()周围,脚本位于顶部还是底部都没有关系。然而,大多数网站将其放在底部作为最佳实践,这样就不会延迟页面其他可见元素的加载。
$(document).ready(function(){
$('#selections').change(function() {
alert('Test');
});
});
$(document).ready(function() {
$('#selections').change(function() {
alert('Test');
});
});