我正在使用gem在网站上实现活动日历。这是event_calendar gem。
我在chrome中遇到以下错误:
Uncaught TypeError: Object function Event() { [native code] } has no method 'observe'
它在event_calendar.js的第6行生成:
Event.observe(window, "load", function() {
关于什么是错误的任何想法?
我有一个名为Event的模型,所以我怀疑它可能会以某种方式干扰JS,但我无法在我的代码中找到它。
我觉得很奇怪的是,事件日历是有效的,有事件和所有事件。这可能是重复的一些问题吗?再一次,我找不到任何迹象。
答案 0 :(得分:2)
抱歉,我可能会有点迟到,我刚遇到同样的问题,并设法解决了这个错误。
event_calendar gem为不同的Javascript库实现了几个不同的实现。 默认情况下,当您运行
时rails generate event_calendar
它不会生成你的rails应用最有可能使用的jquery实现。
Event.observe模式是prototype.js函数。除非你的rails应用程序首先在event_calendar gem之前包含prototype.js,否则它将会中断。
要解决您的问题,如果您使用jquery作为默认的JavaScript库,则可以运行
1. rails generate event_calendar --use-jquery
2. then replace the app/assets/javascripts/event_calendar.js with the generated public/javascripts/event_calendar.js.
希望它有所帮助。