推荐.NET教程: ASP.NET C# 开发环境 Ajax教程 控件开发 统计报表 数据库 Web服务 安装部署 CommunityServer NHibernate DataGrid/GridView 实用代码 VS2005
示例源码 MVC/三层 SqlHelper 入门源码 开源 CMS Ajax/Atlas C#.net 毕业设计 源码 经典代码 商业 本站作品 持久层 随书源码 WebService 英文/汉化 Asp.net2.0

阿牛·乐园

每天进步一点点

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  71 随笔 :: 14 文章 :: 374 评论 :: 13 Trackbacks
    在网页中的Javascript特效,一般是由好多函数组成.但这样的特效,在使用中,会有诸多不便.但如果封装,一般会卡在"如何使HTML元素的事件,使用我们封装类的成员函数作为处理函数"
    那么,如何解决这个问题呢?
    只要切换事件全局上下文为我们类实例的上下文就可以了.
    如何实现切换呢?
    可以用javascript的委托,感觉原理就像把成员函数的二次寻址,转化成用一个自定义函数来实现寻址和参数传递.
    代码实现如下:
    // ajax .net 一段代码
    Function.createDelegate = function(instance, method)
    
{
        
return function()
        
{
            method.apply(instance, arguments);
        }

    }

    有了上面的生成委托代码的函数,我们可以这样来设置事件
    function AdShower(uiImg)
    
{
        
this.uiImg = uiImg;
    }

    
    AdShower.prototype.init 
= function()
    
{
        this.uiImg.onmousemove = Function.createDelegate(this,this.onmousemove);
    }
    
    AdShower.prototype.onmousemove 
= function()
    
{
        alert(
this.uiImg.outerHTML);
    }


 这时,通过createDelegate,我们成功的完成了切换
posted on 2007-06-22 16:01 阿牛 阅读(1833) 评论(5)  编辑 收藏 所属分类: ASP.netDHTML,JS

评论

#1楼  2007-06-22 16:27 yangli      
生气委托??
  回复  引用  查看    

#2楼 [楼主] 2007-06-22 16:48 阿牛      
@yangli
生成,哈哈

  回复  引用  查看    

#3楼  2007-07-12 22:30 1121 [未注册用户]
prototyp打错了吧?

prototype?
  回复  引用    

#4楼 [楼主] 2007-07-13 13:03 阿牛      
@1121
就是,已经修正
  回复  引用  查看    

#5楼  2008-07-21 23:20 傲然林      
不太明白。
  回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  博客园首页

  新闻频道

  社区

  小组

  博问

  网摘

  闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-07-13 13:02 编辑过


相关链接: