百度空间 | 百度首页 
 
查看文章
 
关于javascript事件mousemove影响flash鼠标指针系统的问题
2008-11-23 13:35
在做公司项目中做页面拖拽的时候,发现设定好了鼠标手形Cursor的Sprite或者其他DisplayObject,却无法正常显示Cursor,通过测试,发现当没有给页面javascript设置mousemove事件的时候,Sprite上的指针便能正常显示。
而我在操作的时候,其实是每次都给detachEvent过。
我的detachEvent方法已经封装了IE下的 window.detachEvent,和非IE浏览器的 window.removeEventListener
用来卸载mousemove事件。
但是发现此方法在IE下面并不能真正让IE下的mousemove监听给清除。
即便我只给mousemove事件用detachEvent方法添加了一个函数,同时又用detachEvent回收了这个函数,IE仍然会对mousemove做监听。
而要想让IE下的mousemove不影响鼠标系统,只能在设置mousemove事件的时候,使用
document.onmousemove = function(){};
回收的时候采用 document.onmousemove = null;才行。
不过这样就没有办法给document对象的onmousemove绑定多个函数了。
只能在document对象的onmousemove只会绑定和卸载一个函数的时候使用此方法。


文中提到的相关方法:
UtilsDemoBy3tion = {
    isIE:navigator.userAgent.indexOf("MSIE") == -1 ? false:true,
    attachEvent:function(eventName,fn,obj,flag){
        /// <summary>
        /// 绑定事件
        /// </summary>
        /// <param name="eventName">事件名称(不写onXXX,只写XXX,如onclick事件,该参数只写click)</param>
        /// <param name="fn">执行的函数</param>
        /// <param name="obj">指定的对象</param>
        /// <param name="flag">是否能被取消(IE无效)</param>
        obj = obj || window;
        if(this.isIE)
        {
            obj.attachEvent("on" + eventName,fn );
        }
        else
        {
            flag = flag || false;
            obj.addEventListener(eventName,fn, flag);
        }
    },
    detachEvent:function(eventName,fn,obj,flag){
        /// <summary>
        /// 取消事件绑定
        /// </summary>
        /// <param name="eventName">事件名称(不写onXXX,只写XXX,如onclick事件,该参数只写click)</param>
        /// <param name="fn">执行的函数</param>
        /// <param name="obj">指定的对象</param>
        /// <param name="flag">是否能被取消(IE无效)</param>
        obj = obj || window;
        if(this.isIE)
        {
            window.detachEvent("on" + eventName,fn );
        }
        else
        {
            flag = flag || false;
            window.removeEventListener(eventName,fn, flag);
        }
    }
}


类别:脚本技术/javascript/flash | 添加到搜藏 | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
1
2008-11-23 13:38 | 回复
技术帖,顶一个
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu