consent-8.x-1.0-alpha5/js/trigger/optin.click.js

js/trigger/optin.click.js
/**
 * @file
 * Consent layer: Trigger opt-in consent when clicking.
 */

(function (w, dom, c) {

  var eventMethod = w.addEventListener ? 'addEventListener' : 'attachEvent';
  var removeMethod = eventMethod === 'attachEvent' ? 'detachEvent' : 'removeEventListener';
  var eventName = eventMethod === 'attachEvent' ? 'onclick' : 'click';
  var triggered = false;
  var deferred = false;

  function trigger(e) {
    var target = e.target;
    if (!deferred) {
      deferred = true;
      w.setTimeout(c.doOptIn.bind(c, 'optin_click_defer'), 15000);
    }
    if (!triggered) {
      if ((['A', 'BUTTON', 'INPUT'].indexOf(target.tagName) !== -1) && !c.elHasClass(target, 'no-optin') && (target.parentElement && !c.elHasClass(target.parentElement, 'as-oil-l-item'))) {
        triggered = true;
        c.doOptIn('optin_click_' + target.tagName);
        dom[removeMethod](eventName, trigger, false);
      }
      else if (target.parentElement) {
        return trigger({target: target.parentElement});
      }
    }

  }

  function add() {
    if (!c.userOptedIn()) {
      dom[eventMethod](eventName, trigger, false);
    }
  }

  if (c.layerReady) {
    add();
  }
  else {
    w[eventMethod]('consent:LayerReady', add, false);
  }

}(window, window.document, window.Consent));

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc