未捕获的TypeError:(...)。modal在ES6中不是函数

时间:2018-10-06 09:23:27

标签: javascript jquery twitter-bootstrap npm ecmascript-6

由于我是ES6的新手,我还需要另一双眼睛和知识。

这是我的index.js文件,我尝试在其中使用fullcalendar.io:

import $ from 'jquery';
import 'bootstrap';
import 'fullcalendar';
$(function() {
    $('#calendar').fullCalendar({
     // ... 

     eventClick: function(event, jsEvent, view) {

         $('#calendarEventModal').modal();
     }
    })     
})

问题是,当我运行此代码并单击事件时,出现以下错误:

Uncaught TypeError: (0 , _jquery2.default)(...).modal is not a function

我在做什么错?缺什么 ?

1 个答案:

答案 0 :(得分:0)

至少在两种情况下,x = 0没有$('#calendarEventModal')方法:

  • modal()与调用该方法时DOM中的元素不匹配(以检查是否可以使用:
#calendarEventModal

...显然,您不需要if ($('#calendarEventModal').is('#calendarEventModal')) { console.log('i has found zee DOM element'); $('#calendarEventModal').modal(); } else { console.log('no joy. `#calendarEventModal` missing in action...'); } )。
用简单的话来说:您的DOM中是否有一个带有console.log()的元素,保存了您想在调用id="calendarEventModal"时在模态中看到的所有内容?
是否有可能将其放在内部 .modal()内?如果是这样,也许您应该将其取出。我不知道#calendar在元素上执行什么操作,但是有可能它用一些生成的标记替换了.fullCalendar(),从而浪费了innerHTML

  • 导入的#calendarEventModal软件包没有'bootstrap'方法-可以创建不包含所有模块的自定义Bootstrap软件包。但是,默认情况下它是包含的,因此,如果您不缩减包装尺寸,很可能会遇到第一种情况。