1

我正在使用 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,但我无法在我的代码中的任何地方找到它。

我觉得奇怪的是事件日历适用于事件和所有内容。这可能是重复的问题吗?同样,我找不到任何迹象。

4

1 回答 1

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.

希望能帮助到你。

于 2013-02-04T15:55:26.180 回答