Removed the debug prints, and got back to the original r5 of hoverintent, except for my change to handle mouseenter and mouseleave
git-svn-id: file:///svn-source/pmgr/branches/pre_0.1_work_20090819@821 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
@@ -38,8 +38,6 @@
|
|||||||
// override configuration options with user supplied object
|
// override configuration options with user supplied object
|
||||||
cfg = $.extend(cfg, g ? { over: f, out: g } : f );
|
cfg = $.extend(cfg, g ? { over: f, out: g } : f );
|
||||||
|
|
||||||
$('#debug').append('Setup hoverIntent<BR>');
|
|
||||||
|
|
||||||
// instantiate variables
|
// instantiate variables
|
||||||
// cX, cY = current X and Y position of mouse, updated by mousemove event
|
// cX, cY = current X and Y position of mouse, updated by mousemove event
|
||||||
// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
|
// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
|
||||||
@@ -53,15 +51,12 @@
|
|||||||
|
|
||||||
// A private function for comparing current and previous mouse position
|
// A private function for comparing current and previous mouse position
|
||||||
var compare = function(ev,ob) {
|
var compare = function(ev,ob) {
|
||||||
$('#debug').append('handle timeout<BR>');
|
|
||||||
ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
|
ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
|
||||||
// compare mouse positions to see if they've crossed the threshold
|
// compare mouse positions to see if they've crossed the threshold
|
||||||
if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
|
if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
|
||||||
$(ob).unbind("mousemove",track);
|
$(ob).unbind("mousemove",track);
|
||||||
// set hoverIntent state to true (so mouseOut can be called)
|
// set hoverIntent state to true (so mouseOut can be called)
|
||||||
ob.hoverIntent_s = 1;
|
ob.hoverIntent_s = 1;
|
||||||
$('#debug').append('fire over<BR>');
|
|
||||||
//$('#debug').append(dump(ev));
|
|
||||||
return cfg.over.apply(ob,[ev]);
|
return cfg.over.apply(ob,[ev]);
|
||||||
} else {
|
} else {
|
||||||
// set previous coordinates for next time
|
// set previous coordinates for next time
|
||||||
@@ -75,29 +70,30 @@
|
|||||||
var delay = function(ev,ob) {
|
var delay = function(ev,ob) {
|
||||||
ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
|
ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
|
||||||
ob.hoverIntent_s = 0;
|
ob.hoverIntent_s = 0;
|
||||||
$('#debug').append('fire out<BR>');
|
|
||||||
return cfg.out.apply(ob,[ev]);
|
return cfg.out.apply(ob,[ev]);
|
||||||
};
|
};
|
||||||
|
|
||||||
// A private function for handling mouse 'hovering'
|
// A private function for handling mouse 'hovering'
|
||||||
var handleHover = function(e) {
|
var handleHover = function(e) {
|
||||||
$('#debug').append('handleHover<BR>');
|
// REVISIT <AP>: 20090829; Unknown why mouseenter/mouseleave are being used
|
||||||
|
var etype = e.type;
|
||||||
|
etype = etype.replace(/mouseenter/, "mouseover");
|
||||||
|
etype = etype.replace(/mouseleave/, "mouseout");
|
||||||
|
|
||||||
// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
|
// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
|
||||||
var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
|
var p = (etype == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
|
||||||
while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
|
while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
|
||||||
if ( p == this ) { return false; }
|
if ( p == this ) { return false; }
|
||||||
|
|
||||||
// copy objects to be passed into t (required for event object to be passed in IE)
|
// copy objects to be passed into t (required for event object to be passed in IE)
|
||||||
var ev = e; //jQuery.extend({},e);
|
var ev = jQuery.extend({},e);
|
||||||
var ob = this;
|
var ob = this;
|
||||||
|
|
||||||
// cancel hoverIntent timer if it exists
|
// cancel hoverIntent timer if it exists
|
||||||
if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
|
if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
|
||||||
|
|
||||||
// else e.type == "onmouseover"
|
// else e.type == "onmouseover"
|
||||||
$('#debug').append(e.type + ': _s = ' + ob.hoverIntent_s + '<BR>');
|
if (etype == "mouseover") {
|
||||||
if (e.type == "mouseover" || e.type == "mouseenter") {
|
|
||||||
// set "previous" X and Y position based on initial entry point
|
// set "previous" X and Y position based on initial entry point
|
||||||
pX = ev.pageX; pY = ev.pageY;
|
pX = ev.pageX; pY = ev.pageY;
|
||||||
// update "current" X and Y position based on mousemove
|
// update "current" X and Y position based on mousemove
|
||||||
@@ -122,26 +118,19 @@
|
|||||||
|
|
||||||
$.event.special.hoverintent = {
|
$.event.special.hoverintent = {
|
||||||
setup: function() {
|
setup: function() {
|
||||||
$('#debug').append('setup event hoverintent<BR>');
|
|
||||||
$(this).hoverIntent({
|
$(this).hoverIntent({
|
||||||
over: jQuery.event.special.hoverintent.over,
|
over: jQuery.event.special.hoverintent.over,
|
||||||
out: jQuery.event.special.hoverintent.out
|
out: jQuery.event.special.hoverintent.out
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
teardown: function() {
|
teardown: function() {
|
||||||
$('#debug').append('tear down hoverintent<BR>');
|
|
||||||
},
|
},
|
||||||
|
|
||||||
over: function(ev) {
|
over: function(ev) {
|
||||||
$('#debug').append('handle over<BR>');
|
|
||||||
ev.type = 'hoverintent';
|
ev.type = 'hoverintent';
|
||||||
if (ev.type != 'hoverintent')
|
|
||||||
$('#debug').append('EV TYPE DID NOT TAKE<BR>');
|
|
||||||
//$('#debug').append(dump(ev));
|
|
||||||
jQuery.event.handle.apply(this, arguments);
|
jQuery.event.handle.apply(this, arguments);
|
||||||
},
|
},
|
||||||
|
|
||||||
out: function(event) {
|
out: function(event) {
|
||||||
$('#debug').append('handle out<BR>');
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user