【发布时间】:2013-09-23 07:05:46
【问题描述】:
我正在尝试创建一个 JS 框架。
这是我的 JS 代码:
function $(id)
{
var info={
version:1.0
}
if(id)
{
if(window === this)
{
console.log('window id == '+id);
return new $(id);
}
console.log('id == '+id);
this.e = document.getElementById(id);
return this;
}
else{
return info;
}
}
$.prototype={
controller:function(pl)
{
if(typeof pl.events === 'function')
{
console.log('event is function');
}
},
click:function(callback)
{
this.e.addEventListener('click', callback, false);
return this;
}
};
我在这里称这个框架
<div id='test'>
<div id='btn1'>Button1</div>
</div>
<div id='btn2'>Button2</div>
<script>
$('test').controller({
events:function()
{
$('btn1').click(function(){
alert('btn1 clicked');
});
}
});
$('btn2').click(function(){
alert('btn2 clicked');
});
</script>
输出
window id == test
id == test
event is function
window id == btn2
id == btn2
问题是btn1点击事件不起作用,但btn2点击起作用。有人可以提出一些解决方案或更好的方法来使 JS 框架工作吗?
【问题讨论】:
-
这和prototype.js没有任何关系吧?
-
它的原生 js protoype 不是你说的
标签: javascript prototype javascript-framework