createElement と appendChild を使用して JS と jQuery でオブジェクトを追加することにより、このような HTML 構造を作成するスクリプトを使用しています。
<div id="divLayer">
<div id="divBox">
<!-- stuff -->
<div id="btnSave" class="button small">Save</div>
</div>
</div>
要素の位置はそれぞれabsolute、absolute、およびrelativeであり、表示はblock、blockおよびinline-blockです。次のようなオブジェクト属性を含む配列を定義しました。
var objects = {
divLayer: {
tag: 'DIV',
id: 'divLayer',
parent: 'body'
},
divBox: {
tag: 'DIV',
id: 'divBox',
parent: '#divLayer'
},
btnSave: {
tag: 'DIV',
HTML: 'Save',
id: 'btnSave',
parent: '#divBox',
events: {
click: function () {
alert ( 'Clicked' );
}
}
}
}
これは、オブジェクトを作成してリスナーを追加する部分です。
for ( var config in objects ) {
var object = document.createElement ( config.tag );
...Setup other attributes...
for ( var event in config.events ) object.addEventListener ( event, config.events [ event ] );
$ ( config.parent ).get ( 0 ).appendChild ( object );
}
グラフィック的にはすべて正しいです。背景に divLayer があり、その上に divBox があり、ボックス内に btnSave があり、すべての属性が正しくコンパイルされていますが、ボタンをクリックしても何も起こりません。ボタンをdivLayerに直接配置すると機能します。
私はどこで間違っていますか?
事前にthx!