Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本Javascript/jQuery可以在jFiddle中使用,但不能在我的浏览器中使用_Javascript_Jquery_Html - Fatal编程技术网

基本Javascript/jQuery可以在jFiddle中使用,但不能在我的浏览器中使用

基本Javascript/jQuery可以在jFiddle中使用,但不能在我的浏览器中使用,javascript,jquery,html,Javascript,Jquery,Html,我对编程并不陌生,但我对Javascript和jQuery是新手 在我试图写最基本的东西时,我写了以下内容 如果我将jqueryinclude+myjavascript和HTML复制到jsFiddle,它就可以工作了。当您在下拉列表中选择某个内容时,会出现警报框 但是在我的浏览器中打开.html文件时,它不起作用。您可以全天更改选择,但不会发生任何事情 我觉得这是最基本的事情,但我还没弄明白。我犯了什么愚蠢的初学者错误?Javascript是客户端的,所以我认为它应该可以工作。我用的是Chrom

我对编程并不陌生,但我对Javascript和jQuery是新手

在我试图写最基本的东西时,我写了以下内容

如果我将jqueryinclude+myjavascript和HTML复制到jsFiddle,它就可以工作了。当您在下拉列表中选择某个内容时,会出现警报框

但是在我的浏览器中打开.html文件时,它不起作用。您可以全天更改选择,但不会发生任何事情

我觉得这是最基本的事情,但我还没弄明白。我犯了什么愚蠢的初学者错误?Javascript是客户端的,所以我认为它应该可以工作。我用的是Chrome,但IE中的结果是一样的。Javascript在两者中都是启用的

<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');
    });
});