求解一个 JS如何自定义事件的问题

xr396464010 2013-04-12 11:40:04
举个栗子,
easyui 的 控件 datagrid

$("#element1").datagrid("load") 假设这样的一个控件
datagrid 他是怎么定义 的 我前面只需要定义 我的元素 然后调用他控件,再调用对应的()里面的方法就好, 如果 load 方法有参数又该如何传过去? 这样的方式应该如何去定义?

我想写个 简单的小控件 ,学习下如何把我写的小控件绑定给指定的控件来使用,求大家帮忙下,谢谢了哈


...全文
193 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xr396464010 2013-04-15
  • 打赏
  • 举报
回复
引用 4 楼 functionsub 的回复:
JavaScript code?1234567891011121314151617181920212223242526272829303132$.fn.youName = (function(){ function selfEvent(el,event,callback){ this.event = {}; selfEvent.EL[el……
谢谢,灰常有用。
ftiger 2013-04-12
  • 打赏
  • 举报
回复
从头自定义事件很复杂的,但使用框架就比较简单。jquery 和mootools都有很好的自定义事件机制。 如果你要自定义事件,第一件事就是要将原来的事件按一定的api去封装起来,然后才能在这个api基础上加上你的自定义事件,事实上也就是基于基础事件的伪事件,但都通过统一的api去调用,使用上就象是定义了一个新事件。
scscms太阳光 2013-04-12
  • 打赏
  • 举报
回复
说白了就是jquery插件写法,你可上网查一下。
functionsub 2013-04-12
  • 打赏
  • 举报
回复

$.fn.youName = (function(){
    function selfEvent(el,event,callback){
        this.event = {};
        selfEvent.EL[el] = this;
        this.on(el,event,callback);
    }
    selfEvent.prototype.on = function(el,event,callback){
        this.event[event] = function(){
            callback.apply(el,arguments);
        }
    }
    selfEvent.prototype.fire = function(el,event,args){
        this.event[event].call(el,args);
    }
    selfEvent.EL= {};
    
    return function(event,argsOrCallBack){
        $(this).each(function(){
            var isBind = typeof argsOrCallBack === 'function';
            if(isBind){
                new selfEvent(this,event,argsOrCallBack)
            }else{
                selfEvent.EL[this].fire(this,event,argsOrCallBack);
            }
        });
    }
})();

$('body').youName('test',function(data){
    console.log(data)
});//绑定事件test
$('body').youName('test',[1,2,3,4])//触发test事件,参数为[1,2,3,4]
简单的表示一下吧。 大概就是这么个意思,以上代码还有很多东西要完善。
xr396464010 2013-04-12
  • 打赏
  • 举报
回复
引用 2 楼 ftiger 的回复:
从头自定义事件很复杂的,但使用框架就比较简单。jquery 和mootools都有很好的自定义事件机制。 如果你要自定义事件,第一件事就是要将原来的事件按一定的api去封装起来,然后才能在这个api基础上加上你的自定义事件,事实上也就是基于基础事件的伪事件,但都通过统一的api去调用,使用上就象是定义了一个新事件。
能否写个简单例子,然后我照着学习下?

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧