我正在尝试使用rails FullCalendar来使用qtip,但是在设置qtip时无法通过错误“不是函数”。我刚刚回到Jquery / Rails,显然这通常是一个js文件加载问题。但是,似乎正确加载了js文件(按正确顺序且只加载一次)。以下是(部分)我的js文件:
<script src="/assets/jquery.self-d03a5518f45df77341bdbe6201ba3bfa547ebba8ed64f0ea56bfa5f96ea7c074.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery_ujs.self-8e98a7a072a6cee1372d19fff9ff3e6aa1e39a37d89d6f06861637d061113ee7.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery.qtip.self-c86ab2c0151d0748df498fc4603ec759f565e7966405872bad084728da15c92c.js?body=1" data-turbolinks-track="true"></script>
在我看来,js文件正在正确加载。我现在将日历放在application.js中:
//= require jquery
//= require jquery_ujs
//= require jquery.qtip.js
$(document).ready(function(){
$("#calendar").fullCalendar({
eventSources : [{
url: 'url_to_get_data'
}],
eventLimit: true,
eventRender: function(event, element) {
element.qtip({
content: event.description
});
}
});
});
我直接从FullCalendar's eventRendering section提取了此eventRender
示例。即使我尝试在input
上添加qtip,这也无效。
有人看到任何明显的错误吗?
答案 0 :(得分:1)
结束了我自己解决这个问题,所以想要为有同样问题的人发布答案。事实证明,我必须下载The Qtip .js file并将其放在assets / javascripts中,并将其包含在application.js文件中。我想我错误地认为rails会为我做这件事。
不确定是否重要,但我的require语句的顺序如下:
//= require jquery2
//= require jquery_ujs
//= require moment
//= require fullcalendar
//= require jquery.qtip.js
最后一件事 - 我必须修改original example中的代码。这是我修改过的代码,检查空值:
$(document).ready(function(){
$("#calendar").fullCalendar({
eventSources : [{
url: 'url_to_get_data'
}],
eventLimit: true,
eventRender: function(event, element) {
if (element && event.description) {
element.qtip({
content: event.description,
hide: {
fixed: true,
delay: 500
}
});
}
},
eventClick: function(calEvent, jsEvent, view) {
// Open in new window
url = window.location.href;
window.open(url + "/" + calEvent.id);
},
eventMouseover: function(event, jsEvent, view) {
// Todo
},
eventMouseout: function(event, jsEvent, view) {
// Todo
},
});
});