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

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

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

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

回复:

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

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

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    .detail_info {
        position: absolute;
        display: none;
    }
    </style>
</head>
<body>
    <input type ="button" value="测试增加/移除监听" id="btn_bind"/>
    <div style="position: relative;" id="box_content">
        <input type="text" />
        <input type="text" />
 
        <!--浮动的详细信息-->
        <div id="box_detail">
            浮动提示信息
        </div>
    </div>
    <script type="text/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";
        }
    })();
    </script>
</body>
</html>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索实例
, 函数
, 事件
this
js移除监听事件、移除监听事件、extjs移除事件监听、ios移除监听事件、android 移除监听事件,以便于您获取更多的相关知识。

时间: 2024-10-29 06:44:32

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

js监听滚动条滚动事件使得某个标签内容始终位于同一位置

 js如何监听滚动条滚动事件,使得某个标签内容始终位于同一位置,下面有个不错的示例,大家可以参考下 小知识点,废话不多说,直接上代码    css:   代码如下: <pre name="code" class="css"><style>  #anchor:{  position:absulate;  top:40%;  left:40%;  width:100px;  height:100px;  background-color:red;

移动端浏览器怎么监听网页关闭事件

问题描述 移动端浏览器怎么监听网页关闭事件 1C 现在有一个需求,就是在移动端浏览器(包括第三方浏览器,微信内置浏览器以及app内webview)打开的网页中,怎么监听到离开该网页的事件(如关闭.刷新等)??求大神指教!在线等!! 解决方案 window.onbeforeunload=function(e){ return (e||window.event).returnValue='确认离开?!'} 解决方案二: 监听浏览器关闭事件js监听浏览器关闭事件浏览器关闭监听事件,判断刷新还是关闭 解

IOS之UI--自定义按钮实现代理监听点击事件

前言: Objective-C提供的按钮监听事件的方法是 不含参数的监听方法 [button实例对象 addTarget:self action:@selector(func) forControlEvents:UIControlEventTouchUpInside]; 含参数的监听方法 [button实例对象 addTarget:self action:@selector(func:) forControlEvents:UIControlEventTouchUpInside]; 下面通过代理的

在flex中监听鼠标右键事件,提示 TypeError Error 2007 参数type不能为空。

在flex中监听鼠标右键事件 ,报错,提示 缺少参数. TypeError: Error 2007: 参数 type 不能为空. at flash.events::EventDispatcher/addEventListener() at com.waylau.eagleos.components::DesktopExplorer/service_resultHandler()[D:\workspaceFB47\com.waylau.eagleos_0.9.5\src\com\waylau\ea

jquery-ui-draggable-事件捕获对一个元素监听拖动事件并对这个元素的子元素监听点击事件

问题描述 事件捕获对一个元素监听拖动事件并对这个元素的子元素监听点击事件 在不支持事件冒泡的浏览器中.对一个元素监听拖动事件并对这个元素的子元素监听点击事件.这两个事件会冲突.只能执行拖动事件.这种问题怎么解决? 解决方案 Preference元素和监听事件 解决方案二: 说明你没点击到子元素,一般是从子元素冒泡,不支持冒泡不会触发父元素的拖动事件 不过有哪种浏览器不支持冒泡?还没碰到过.. 解决方案三: 浏览器都支持冒泡啊,如果你只用捕获,那么肯定是先监听到父元素的事件,再是子元素,但问题是你

removeView之后,listView无法监听点击事件

问题描述 removeView之后,listView无法监听点击事件 解决方案 remove了,在屏幕上都看不见了,当然不会再去响应点击事件了.

listview-android-怎么在一个ListView中监听点击事件?

问题描述 android-怎么在一个ListView中监听点击事件? 我现在有这个代码 ListView list = (ListView)findViewById(R.id.ListView01); ... list.setAdapter(adapter); 当我像下边这么做的时候 list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(Adapte

android监听返回按钮事件的方法_Android

本文实例讲述了android监听返回按钮事件的方法.分享给大家供大家参考.具体如下: 用户在点击手机的返回按钮时,默认是推出当前的activty,但是有时用户不小心按到返回,所以需要给用户一个提示,这就需要重写onkeydown事件,实现的效果如下: java代码如下: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.l

js跨浏览器的事件侦听器和事件对象的使用方法_javascript技巧

本文特意为跨浏览器实现添加事件侦听器和跨浏览器事件对象的使用方法做了下总结,并把这些方法打包,欢迎大家学习. 打包的一个EventUtil对象 var EventUtil = { // 添加侦听事件 addEventListener:function (element, type, handler) { // IE9+.Firefox.Safari.chrome和Opera if(element.addEventListener) { element.addEventListener(type,