0

由于 Bootstrap-native javascript 不是直接必需的,因为它仅在用户开始与页面交互时才真正需要,我想我可以延迟加载它。(是的,它只有几 KB,但是,如果可能的话,为什么不呢?)

小问题是引导脚本将在 DOMContentLoaded 事件上触发它的初始化函数 initCallback()。我相信这个函数会在 HTML 中查找数据标签并关联适当的事件/触发器。由于它是延迟加载的,因此 DOMContentLoaded 在 bootstrap.js 下载之前触发,因此它缺少此事件并且不会初始化。

我只是 Javascript 的爱好者;而且我似乎无法弄清楚在 fetch() (实际上使用我在网上找到的名为 fetchInject() 的函数)完成脚本下载后如何手动调用此函数。

也许延迟加载引导不是一个好主意;但从长远来看,我想我会弄清楚的;如果我至少让这个工作。

  /* Native Javascript for Bootstrap 4 | Initialize Data API
  --------------------------------------------------------*/
  var initializeDataAPI = function( constructor, collection ){
      for (var i=0, l=collection[length]; i<l; i++) {
        new constructor(collection[i]);
      }
    },
    initCallback = BSN.initCallback = function(lookUp){
      lookUp = lookUp || DOC;
      for (var i=0, l=supports[length]; i<l; i++) {
        initializeDataAPI( supports[i][1], lookUp[querySelectorAll] (supports[i][2]) );
      }
    };

  // bulk initialize all components
  DOC[body] ? initCallback() : on( DOC, 'DOMContentLoaded', function(){ initCallback(); } );

initCallback() 执行,以便引导程序将找到所有 HTML 内联数据挂钩(如下拉菜单和东西)

4

1 回答 1

0

您是否尝试过像运行以下代码一样访问全局引导命名空间:

BSN.initCallback();
于 2018-12-29T07:01:44.660 回答