スパンを表示するために、display:inline-block
ここで CSS に高さと幅を指定します。jQuery で
この要素を作成した後、DOM のどこかに追加されます (ここでは例として)。ホバーしてクリックすると、ブラウザーのマウスハンドラーと対話できます (目に見えない要素は mouseevents を起動しません、論理 ^^ )、既に指定された要素
をパックした後jQueryへのセレクターとして、参照メカニズムが EventListener を DOM のどこにバインドするかを知るのに役立ちます<span>
'body'
newblock
$(newblock)
document.createElement('span')
と同等の eventListeners を直接バインドすることはできません。常に$('<span />')
DOM のどこかに配置する必要があります。つまり、リスナーを javascript 自体 (変数) にバインドすることはできませんが、dom 内のオブジェクトにはバインドできません。
そして、オブジェクト構造を確認するために、そのblocks
小さな例を作成しました。
<style>
.unitwrap {height:40px; width:40px; display:inline-block; border: 1px solid #f00}
</style>
<script type="text/javascript">
var blocks=[{"unitnum":2},{"unitnum":4}];
var l=blocks.length;
for (var i=0;i<l;i++) {
var newblock = $("<span data-unit='" + blocks[i].unitnum + "' class='unitwrap' />");
$('body').append(newblock);
$(newblock).click(function(){
console.log('yeah clicked');
});
$(newblock).hover(function(){
console.log('plop hovered');
});
}
</script>