一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

js 的 load 事件监听问题及事件监听的添加移除实例

时间:2015-11-07 编辑:简简单单 来源:一聚教程网

当我在 html 页面里写入 js ,绑定 load 事件的时候:

window.addEventListener("load", test, false);
function test(){
console.log("test");
}

这个时候是可以正常调用 test 函数的。
但是当我结合 requirejs 把事件监听放在外部引入的 js 文件里,就没办法正常监听了,求解决办法及原因



回复:

引入你这个 js 之前页面就已经 load 完毕了,解决办法就是先判断页面加载状态,加载完成直接执行,没加载完毕再监听加载完毕事件。这种简单的问题可以看下 jquery 是怎么处理的。



如何通过js实现添加事件监听和移除事件监听




    
    
    


    
    
        
        
 
        
        
            浮动提示信息
        
    
    javascript">     (function () {         document.getElementById("btn_bind").addEventListener("click", function () {             if(this.bindStatue) {                 removeEvent();             } else {                 bindEvent();             }               this.bindStatue = !this.bindStatue;         });           function removeEvent() {             var inputs = document.querySelectorAll(".text");             for(var i = 0, length = inputs.length; i < length; i++) {                 inputs[i].removeEventListener("mousemove", showDetail);                 inputs[i].removeEventListener("mouseout", hideDetail);             }         }           function bindEvent() {             var inputs = document.querySelectorAll(".text");             for(var i = 0, length = inputs.length; i < length; i++) {                 inputs[i].addEventListener("mousemove", showDetail);                 inputs[i].addEventListener("mouseout", hideDetail);             }         }           function showDetail(e) {             var e = e || window.event,                 box = document.getElementById("box_detail"),                 content = document.getElementById("box_content");               box.style.display = "block";             box.style.top = e.clientY - content.offsetTop + "px";             box.style.left = e.clientX - content.offsetLeft + "px";         }           function hideDetail() {             document.getElementById("box_detail").style.display = "none";         }     })();     


热门栏目