原生js仿jquery的事件函数

qqcome110 2012-11-21 02:38:27
JQuery:obj.on('click',function(){...});

想将这个用原生js写出来,我自己也尝试着写了下:

Object.prototype.on=function(eventName,fn){
document.all?this.attachEvent('on'+eventName,fn):this.addEventListener(eventName,fn,false);
};
var $=function(){return document.getElementById(arguments[0]);};
$('btn').on('click',function(){
alert('打印不出来');
});

得不到自己想要的结果,各位大侠看到的请各显神通,写出你们自己的js代码
...全文
165 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqcome110 2012-11-21
  • 打赏
  • 举报
回复
引用 1 楼 danica7773 的回复:
好好学习,天天向上。。。 JavaScript code?1234567891011121314151617function $(){ return new $.prototype.init(arguments[0]);};$.prototype = { init: function() { this.obj = document.getE……
不过在alert(this.id)的时候不会出现它的id值
qqcome110 2012-11-21
  • 打赏
  • 举报
回复
引用 2 楼 danica7773 的回复:
晕,傻了巴叽的 JavaScript code?12this.obj = document.getElementById(arguments[0])//不要 || null;
赞一个,厉害!
风一样的大叔 2012-11-21
  • 打赏
  • 举报
回复
引用 1 楼 danica7773 的回复:
好好学习,天天向上。。。 JavaScript code?1234567891011121314151617function $(){ return new $.prototype.init(arguments[0]);};$.prototype = { init: function() { this.obj = document.getE……
厉害啊
打字员 2012-11-21
  • 打赏
  • 举报
回复
晕,傻了巴叽的

this.obj = document.getElementById(arguments[0])//不要 || null;
打字员 2012-11-21
  • 打赏
  • 举报
回复
好好学习,天天向上。。。

function $(){
	return new $.prototype.init(arguments[0]);
};
$.prototype = {
	init: function() {
		this.obj = document.getElementById(arguments[0]) || null;
	},
	on: function(eventName, fn) {
		this.obj && (document.all? this.obj.attachEvent('on'+ eventName, fn) : this.obj.addEventListener(eventName, fn, false));
	}
};
$.prototype.init.prototype = $.prototype;

$('btn').on('click', function(){
	alert('打印不出来');
});

87,992

社区成员

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

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