MCPcopy Create free account
hub / github.com/EricSimons/ionic-course / bindJQuery

Function bindJQuery

code/songhop/www/lib/angular/angular.js:1508–1557  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1506var bindJQueryFired = false;
1507var skipDestroyOnNextJQueryCleanData;
1508function bindJQuery() {
1509 var originalCleanData;
1510
1511 if (bindJQueryFired) {
1512 return;
1513 }
1514
1515 // bind to jQuery if present;
1516 jQuery = window.jQuery;
1517 // Use jQuery if it exists with proper functionality, otherwise default to us.
1518 // Angular 1.2+ requires jQuery 1.7+ for on()/off() support.
1519 // Angular 1.3+ technically requires at least jQuery 2.1+ but it may work with older
1520 // versions. It will not work for sure with jQuery <1.7, though.
1521 if (jQuery && jQuery.fn.on) {
1522 jqLite = jQuery;
1523 extend(jQuery.fn, {
1524 scope: JQLitePrototype.scope,
1525 isolateScope: JQLitePrototype.isolateScope,
1526 controller: JQLitePrototype.controller,
1527 injector: JQLitePrototype.injector,
1528 inheritedData: JQLitePrototype.inheritedData
1529 });
1530
1531 // All nodes removed from the DOM via various jQuery APIs like .remove()
1532 // are passed through jQuery.cleanData. Monkey-patch this method to fire
1533 // the $destroy event on all removed nodes.
1534 originalCleanData = jQuery.cleanData;
1535 jQuery.cleanData = function(elems) {
1536 var events;
1537 if (!skipDestroyOnNextJQueryCleanData) {
1538 for (var i = 0, elem; (elem = elems[i]) != null; i++) {
1539 events = jQuery._data(elem, "events");
1540 if (events && events.$destroy) {
1541 jQuery(elem).triggerHandler('$destroy');
1542 }
1543 }
1544 } else {
1545 skipDestroyOnNextJQueryCleanData = false;
1546 }
1547 originalCleanData(elems);
1548 };
1549 } else {
1550 jqLite = JQLite;
1551 }
1552
1553 angular.element = jqLite;
1554
1555 // Prevent double-proxying.
1556 bindJQueryFired = true;
1557}
1558
1559/**
1560 * throw error if the argument is falsy.

Callers 1

angular.jsFile · 0.70

Calls 1

extendFunction · 0.70

Tested by

no test coverage detected