Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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-nubie、window.onlaod和iLife_Javascript_Iife - Fatal编程技术网

JavaScript-nubie、window.onlaod和iLife

JavaScript-nubie、window.onlaod和iLife,javascript,iife,Javascript,Iife,我这里有一个失物招领- 这是一个按钮上的简单事件 对于window.onload,它起作用,但对生活不起作用 我以为iLife会在创建后运行,所以这不是像窗口加载后一样吗 // (function(){ // var btn = document.getElementById('btn1'); // btn.addEventListener('click', function(){ // alert('Hi'); // })

我这里有一个失物招领-

这是一个按钮上的简单事件

对于window.onload,它起作用,但对生活不起作用

我以为iLife会在创建后运行,所以这不是像窗口加载后一样吗

    // (function(){

    //   var btn = document.getElementById('btn1');

    //   btn.addEventListener('click', function(){
    //     alert('Hi');
    //   })

    // })();


    window.onload = function(){

      var btn = document.getElementById('btn2');

      btn.addEventListener('click', function(){
        alert('Hi');
      })

    };
我以为生命一旦被创造出来就会开始

当然可以。(已经有点名副其实了…)

那么,这不是像窗口加载后那样吗

    // (function(){

    //   var btn = document.getElementById('btn1');

    //   btn.addEventListener('click', function(){
    //     alert('Hi');
    //   })

    // })();


    window.onload = function(){

      var btn = document.getElementById('btn2');

      btn.addEventListener('click', function(){
        alert('Hi');
      })

    };
这就是问题所在

您的脚本资源嵌入在头部,这意味着在执行时,您试图通过其id选择的HTML元素还不存在

因此,您需要在元素存在(窗口加载、DOMContentReady)之后执行此操作,或者在相关HTML元素之后嵌入外部脚本资源。(无论如何,将脚本放在正文末尾是一般性能建议。)

我以为生命一旦被创造出来就会开始

当然可以。(已经有点名副其实了…)

那么,这不是像窗口加载后那样吗

    // (function(){

    //   var btn = document.getElementById('btn1');

    //   btn.addEventListener('click', function(){
    //     alert('Hi');
    //   })

    // })();


    window.onload = function(){

      var btn = document.getElementById('btn2');

      btn.addEventListener('click', function(){
        alert('Hi');
      })

    };
这就是问题所在

您的脚本资源嵌入在头部,这意味着在执行时,您试图通过其id选择的HTML元素还不存在


因此,您需要在元素存在(窗口加载、DOMContentReady)之后执行此操作,或者在相关HTML元素之后嵌入外部脚本资源。(无论如何,将脚本放在正文末尾是一项一般性能建议。)

“将在创建脚本后运行”-值“it”等于函数而不是元素。@Quentin是的,当然;我认为这也是OP的意思。“一旦创建它就会运行”-因为“it”的值等于函数而不是元素。@Quentin是的,当然;我想这也是OP的意思。