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フレームを機能させるための解決策またはより良い方法を誰かが提案できますか?