簡體   English   中英

jQuery qtip“不是函數”-Ruby on Rails

[英]Jquery qtip “is not a function” - Ruby on Rails

我正在嘗試讓qtip與rails FullCalendar一起使用,但是在設置qtip時無法克服錯誤“ is not a function”。 我只是回到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的eventRendering部分提取了這個eventRender示例。 即使我嘗試在inputinput qtip,這也行不通。

有人看到明顯的錯誤嗎?

最終只是自己解決了這個問題,因此想將答案發布給遇到相同問題的任何人。 事實證明,我必須下載Qtip .js文件並將其放置在資產/ javascript中,並且仍將其包含在application.js文件中。 我想我誤以為Rails會為我做這件事。

不確定是否重要,但是我的require語句的順序如下所示:

//= require jquery2
//= require jquery_ujs
//= require moment
//= require fullcalendar
//= require jquery.qtip.js

最后一件事-我確實不得不修改原始示例中的代碼。 這是我修改后的代碼,檢查空值:

$(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
        },
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM