Bootstrap Popover Content - PullRequest
       6

Bootstrap Popover Content

0 голосов
/ 09 января 2020

Я дизайнер, не очень знакомый с javascript, но в итоге мне удалось исправить одну ошибку на существующем веб-сайте, используя Bootstrap 3.4.1 Popover. Владелец сайта жалуется, что в контенте, загруженном с помощью popover, отсутствуют некоторые элементы. Основываясь на других вопросах и ответах здесь, я думаю, что мне нужно добавить это $.fn.popover.Constructor.Default.whiteList.html = []; где-нибудь в коде. Мое предположение было выше var elements, но я получаю это сообщение об ошибке; Cannot read property 'whiteList' of undefined.

К вашему сведению, когда я понижаю версию Bootstrap с 3.4.1 до 3.3.7, всплывающее содержимое отображается, как и ожидалось.

  var elements = $(context).find('[data-toggle=popover]').toArray();
  for (var i = 0; i < elements.length; i++) {
    var $element = $(elements[i]);
    var options = $.extend({}, $.fn.popover.Constructor.DEFAULTS, settings.bootstrap.popoverOptions, $element.data());

    // Store the original trigger.
    options.originalTrigger = options.trigger;

    // If the trigger is "click", then we'll handle it manually here.
    if (options.trigger === 'click') {
      options.trigger = 'manual';
    }

    // Retrieve content from a target element.
    var target = options.target || $element.is('a[href^="#"]') && $element.attr('href');
    var $target = $document.find(target).clone();
    if (!options.content && $target[0]) {
      $target.removeClass('element-invisible hidden').removeAttr('aria-hidden');
      options.content = $target.wrap('<div/>').parent()[options.html ? 'html' : 'text']() || '';
    }

    // Initialize the popover.
    $element.popover(options);

    // Handle clicks manually.
    if (options.originalTrigger === 'click') {
      // To ensure the element is bound multiple times, remove any
      // previously set event handler before adding another one.
      $element
        .off('click.drupal.bootstrap.popover')
        .on('click.drupal.bootstrap.popover', function (e) {
          $(this).popover('toggle');
          e.preventDefault();
          e.stopPropagation();
        })
      ;
    }
  }
...