-
-
Save namlet/819586 to your computer and use it in GitHub Desktop.
var boxCoord = function(endCoord) { | |
var coord = endCoord; | |
return function(anotherCoord) { | |
return [anotherCoord, coord]; | |
} | |
} | |
$('body').mousedown(function(e){ | |
var thate = e; | |
$(this).mouseup(function(e){ | |
var box = boxCoord([e.pageX,e.pageY])([thate.pageX,thate.pageY]); | |
console.log(box); | |
}); | |
}); |
ha ha, I just noticed we are adding the mouseup event every time they mousedown. So after n mousedowns, the mouseup will be called n times.
True, to fix...
$('body').mousedown(function(e) {
$(this).bind('mouseup.box',function(f) {
console.log([[e.pageX, e.pageY], [f.pageX, f.pageY]]);
$(this).unbind('mouseup.box');
});
});
deadHorse.beat();
(function() { var d = {}; $('body').bind({ mousedown: function(e) { d.start = [e.pageX, e.pageY]; }, mouseup: function(e) { d.end = [e.pageX, e.pageY]; console.log(d); } }); })();
@webdevwilson - won't arbitrarily binding both events to a dom object mean that you could - say - have a mouseup event that occurs before the mousedown event? wouldn't that mean that the console.log(d) writes out an incomplete d object?
@namlet: what's the mouseup.box for?
@azizshamim - I guess. But isn't it equally possible that the late bound mouseup could be missed completely? At least in my model the coordinates will still be captured.
@namelet - I was wondering about the mouseup.box as well.
@webdevwilson - i have no idea. i'm a javascript newbie. i asked namlet for a "how to do x" this is the result...
@azizshamim - ha ha, no one does. Perhaps the browser is slow firing the mousedown event and for some reason the mouseup is fired before the mousedown. Surely that violates a spec or something. Of course, no browser implementation would ever dare to violate a spec. Would they? Welcome to javascript. :)
mouseup.box is namespacing. That way when you unbind it, it only removes the handlers specifically registered with that namespace, mouseup.box.
That's far more concise. Was trying out some patterns from Crockford's JavaScript book, the good parts.