Ox.load('UI', { debug: true }, function() { var $target = Ox.Element() .css({ position: 'absolute', width: '256px', top: 0, bottom: 0, background: 'rgb(255, 0, 0)' }) .html('Click here') .appendTo(Ox.UI.$body), $clear = Ox.Element() .css({ position: 'absolute', left: '256px', right: 0, height: '16px', background: 'rgb(192, 192, 192)' }) .html('Clear log') .click(function() { $log.empty(); }) .appendTo(Ox.UI.$body); $log = Ox.Element() .css({ position: 'absolute', left: '256px', right: 0, top: '16px', bottom: 0, overflowY: 'auto' }) .appendTo(Ox.UI.$body); [ 'anyclick', 'singleclick', 'doubleclick', 'mousedown', 'mouserepeat', 'dragstart', 'drag', 'dragenter', 'dragleave', 'dragpause', 'dragend' ].forEach(function(event) { $target.bindEvent(event, function(e) { var date = new Date(); $('
') .html( Ox.formatDate(date, '%H:%M:%S') + '.' + (Ox.pad(date % 1000, 3)) + ' ' + event + ' ' + JSON.stringify( Ox.extend(e.clientX ? { clientX: e.clientX, clientY: e.clientY, } : {}, e.clientDX ? { clientDX: e.clientDX, clientDY: e.clientDY } : {}) ) .replace(/"/g, '') .replace(/:/g, ': ') .replace(/,/g, ', ') ) .prependTo($log.$element); event == 'anyclick' && Ox.print(e); }); }); });