MCPcopy Index your code
hub / github.com/unconed/TermKit / liveHandler

Function liveHandler

HTML/jquery.js:3585–3671  ·  view source on GitHub ↗
( event )

Source from the content-addressed store, hash-verified

3583});
3584
3585function liveHandler( event ) {
3586 var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
3587 elems = [],
3588 selectors = [],
3589 events = jQuery._data( this, "events" );
3590
3591 // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911)
3592 if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) {
3593 return;
3594 }
3595
3596 if ( event.namespace ) {
3597 namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
3598 }
3599
3600 event.liveFired = this;
3601
3602 var live = events.live.slice(0);
3603
3604 for ( j = 0; j < live.length; j++ ) {
3605 handleObj = live[j];
3606
3607 if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) {
3608 selectors.push( handleObj.selector );
3609
3610 } else {
3611 live.splice( j--, 1 );
3612 }
3613 }
3614
3615 match = jQuery( event.target ).closest( selectors, event.currentTarget );
3616
3617 for ( i = 0, l = match.length; i < l; i++ ) {
3618 close = match[i];
3619
3620 for ( j = 0; j < live.length; j++ ) {
3621 handleObj = live[j];
3622
3623 if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) {
3624 elem = close.elem;
3625 related = null;
3626
3627 // Those two events require additional checking
3628 if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {
3629 event.type = handleObj.preType;
3630 related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];
3631
3632 // Make sure not to accidentally match a child element with the same selector
3633 if ( related && jQuery.contains( elem, related ) ) {
3634 related = elem;
3635 }
3636 }
3637
3638 if ( !related || related !== elem ) {
3639 elems.push({ elem: elem, handleObj: handleObj, level: close.level });
3640 }
3641 }
3642 }

Callers

nothing calls this directly

Calls 1

jQueryFunction · 0.70

Tested by

no test coverage detected