闪客动漫天地
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
闪客动漫天地论坛

发表新主题 回复该主题
本主题被查看1302次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: 如何使HTML元素的事件,使用我们封装类的成员函数作为处理函数 (转)
新手上路
UID: 309719
来自:
精华: 0
积分: 11
帖子: 11
注册: 2007-6-20 16:01:00
状态: 离线
威望: 0.00
金钱: 2.75 元
只看楼主 2007-06-22 17:29
如何使HTML元素的事件,使用我们封装类的成员函数作为处理函数 (转)
在网页中的Javascript特效,一般是由好多函数组成.但这样的特效,在使用中,会有诸多不便.但如果封装,一般会卡在"如何使HTML元素的事件,使用我们封装类的成员函数作为处理函数"
    那么,如何解决这个问题呢?
    只要切换事件全局上下文为我们类实例的上下文就可以了.
    如何实现切换呢?
    可以用javascript的委托,感觉原理就像把成员函数的二次寻址,转化成用一个自定义函数来实现寻址和参数传递.
    代码实现如下:
    // ajax .net 一段代码
    Function.createDelegate = function(instance, method)
    {
        return function()
        {
            method.apply(instance, arguments);
        }
    }
    有了上面的生成委托代码的函数,我们可以这样来设置事件
    function AdShower(uiImg)
    {
        this.uiImg = uiImg;
    }
   
    AdShower.prototyp.init = function()
    {
        this.uiImg.onmousemove = Function.createDelegate(this,this.onmousemove);
    }
   
    AdShower.prototyp.onmousemove = function()
    {
        alert(this.uiImg.outerHTML);
    }

这时,通过createDelegate,我们成功的完成了切换
#1  
发表新主题 回复该主题
本主题被查看1302次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2008-09-09 01:25:36
沪ICP备05003105号

版权所有 闪客俱乐部  
         Powered by Discuz!NT 1.0.6666    Copyright © 2001-2008 Comsenz Inc.
Processed in 0.512 seconds