Javascript 我得到了错误$(…)。即使在jQuery之后导入了引导,modal也不是一个函数。我如何解决这个问题(使用npm版本)?

Javascript 我得到了错误$(…)。即使在jQuery之后导入了引导,modal也不是一个函数。我如何解决这个问题(使用npm版本)?,javascript,jquery,node.js,npm,electron,Javascript,Jquery,Node.js,Npm,Electron,在发布这期文章之前,我做了广泛的研究,觉得我已经用尽了在线文档和堆栈溢出 我的问题: 我正在将npm版本的引导与tempus dominus日期时间选择器脚本一起使用,并获得错误$(…)。尽管jQuery在引导之前导入,然后用于在后端实际导入引导,但modal不是一个函数,如下所示: const ipcRenderer = require('electron').ipcRenderer const jQuery = require('jQuery'); const $ = require('jQ

在发布这期文章之前,我做了广泛的研究,觉得我已经用尽了在线文档和堆栈溢出

我的问题:

我正在将npm版本的引导与tempus dominus日期时间选择器脚本一起使用,并获得错误$(…)。尽管jQuery在引导之前导入,然后用于在后端实际导入引导,但modal不是一个函数,如下所示:

const ipcRenderer = require('electron').ipcRenderer
const jQuery = require('jQuery');
const $ = require('jQuery');
require('popper.js')
const moment = require('moment')
$(document).ready(() => {
    ipcRenderer.send('page-ready');

    moment().format();
    $.getScript("./js/tempusdominus-bootstrap-4.min.js", function() {

      $(function () {
        $('#datetimepicker1').datetimepicker({
          format: 'YYYY-MM-DD HH:mm'
        });
      });

      $(function () {
      $('#datetimepicker2').datetimepicker({
        format: 'YYYY-MM-DD HH:mm'
      });
      });

    })
    require("bootstrap")
});
我尝试过的事情:

因此,经过一些研究,我发现这可能是因为jQuery被导入了两次,以使另一个js脚本正常工作,所以我通过将代码更改为:

const ipcRenderer = require('electron').ipcRenderer
const jQuery = require('jQuery');
const $ = jQuery.noConflict();
require('popper.js')
const moment = require('moment')
$(document).ready(() => {
    ipcRenderer.send('page-ready');

    moment().format();
    $.getScript("./js/tempusdominus-bootstrap-4.min.js", function() {

      $(function () {
        $('#datetimepicker1').datetimepicker({
          format: 'YYYY-MM-DD HH:mm'
        });
      });

      $(function () {
      $('#datetimepicker2').datetimepicker({
        format: 'YYYY-MM-DD HH:mm'
      });
      });

    })
    require("bootstrap")
});
调用模态的代码:

ipcRenderer.on("edit-self-result", (event, arg) => {
  if (arg == false) {
    $('#editMemberModal').modal('toggle');
    document.getElementById("userTypeEdit").value = usertype
    document.getElementById("usernameEdit").value = username
    document.getElementById("emailEdit").value = email
  }
})
我应该让你试试这个

$("..")[0].modal

经过几个小时的努力,我终于找到了一个有效的解决方案。我不知道为什么会这样,但如果有人想改变这个答案来解释为什么会这样

但我改变了我的代码:

const jQuery = require('jQuery');
const $ = jQuery.noConflict();
为此:

global.jQuery = require('jquery');
global.$ = jQuery.noConflict();

您好,我担心这没有效果,我仍然会遇到同样的问题如果您将
require(“bootstrap”)
放在doc ready之外怎么办?可能是ipcRenderer在加载引导程序之前启动了吗?当我按下按钮从后台获取数据并将其发送到前端时,它不应该启动得太早,所以它不应该启动得太早,但我尝试了您的建议,结果没有什么不同。modal()可以在页面上的其他地方工作吗?是否有其他引导js(核心引导,而非第三方插件)可以工作?也许你有一个版本的bootstrap不包括modal?
$(…)。modal(…)
在我的页面上的任何其他地方都不起作用,我不确定是否有其他bootstrap js起作用,但我可以确认它肯定是成功导入的:你的屏幕截图还显示jquery加载了两次。检查network选项卡以确保jquery在引导后没有被(重新)加载,因为这将删除引导功能。