MCPcopy
hub / github.com/angular-ui/ui-grid / bindJQuery

Function bindJQuery

lib/test/angular/1.4.3/angular.js:1709–1763  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1707var bindJQueryFired = false;
1708var skipDestroyOnNextJQueryCleanData;
1709function bindJQuery() {
1710 var originalCleanData;
1711
1712 if (bindJQueryFired) {
1713 return;
1714 }
1715
1716 // bind to jQuery if present;
1717 var jqName = jq();
1718 jQuery = window.jQuery; // use default jQuery.
1719 if (isDefined(jqName)) { // `ngJq` present
1720 jQuery = jqName === null ? undefined : window[jqName]; // if empty; use jqLite. if not empty, use jQuery specified by `ngJq`.
1721 }
1722
1723 // Use jQuery if it exists with proper functionality, otherwise default to us.
1724 // Angular 1.2+ requires jQuery 1.7+ for on()/off() support.
1725 // Angular 1.3+ technically requires at least jQuery 2.1+ but it may work with older
1726 // versions. It will not work for sure with jQuery <1.7, though.
1727 if (jQuery && jQuery.fn.on) {
1728 jqLite = jQuery;
1729 extend(jQuery.fn, {
1730 scope: JQLitePrototype.scope,
1731 isolateScope: JQLitePrototype.isolateScope,
1732 controller: JQLitePrototype.controller,
1733 injector: JQLitePrototype.injector,
1734 inheritedData: JQLitePrototype.inheritedData
1735 });
1736
1737 // All nodes removed from the DOM via various jQuery APIs like .remove()
1738 // are passed through jQuery.cleanData. Monkey-patch this method to fire
1739 // the $destroy event on all removed nodes.
1740 originalCleanData = jQuery.cleanData;
1741 jQuery.cleanData = function(elems) {
1742 var events;
1743 if (!skipDestroyOnNextJQueryCleanData) {
1744 for (var i = 0, elem; (elem = elems[i]) != null; i++) {
1745 events = jQuery._data(elem, "events");
1746 if (events && events.$destroy) {
1747 jQuery(elem).triggerHandler('$destroy');
1748 }
1749 }
1750 } else {
1751 skipDestroyOnNextJQueryCleanData = false;
1752 }
1753 originalCleanData(elems);
1754 };
1755 } else {
1756 jqLite = JQLite;
1757 }
1758
1759 angular.element = jqLite;
1760
1761 // Prevent double-proxying.
1762 bindJQueryFired = true;
1763}
1764
1765/**
1766 * throw error if the argument is falsy.

Callers 1

angular.jsFile · 0.70

Calls 3

jqFunction · 0.70
isDefinedFunction · 0.70
extendFunction · 0.70

Tested by

no test coverage detected