2016-07-21 2 views
4

Я получаю

TypeError: $(…).tooltip is not a function

ошибки в файле Jquery, в котором я Инициирование функции подсказки() при использовании Lightbox2 с начальной загрузкой.

$(function() { 
 
    $('[data-toggle="tooltip"]').tooltip({ 
 
     html: true 
 
    }); 
 
});
<head> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
 
     <script src="bootstrap/js/bootstrap.js"></script> 
 
     <script src="main.js"></script> 
 
</head> 
 
<body> 
 
    <script src="lightbox-plus-jquery.min.js"></script> 
 
</body>

+0

<сценарий SRC = «http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js»> попробуйте эту ссылку и удалить ур локальный URL для начальной загрузки JS –

+0

Является ли бутстраповская JS загрузка файла? – epascarello

+0

Проверьте свою консоль, это 'TypeError: $ (...) .tooltip не является функцией' единственная ошибка, которую вы видите? –

ответ

5

Это может произойти, когда JQuery включен в два раза.

Для людей, использующих Rails, JQuery уже включена по умолчанию (проверить app/assets/javascripts/application.js):

//= require jquery 

В том числе JQuery снова, например, с помощью <script> тега в app/views/layouts/application.html.erb, приведет к ошибке.

Решение должно удалить тег <script> в app/views/layouts/application.html.erb.

+0

Он никогда не говорил, что работает на рельсах. –

+0

@NeerajRana Правда, но это обычное явление, когда вы начинаете работать с любым фреймворком. Рамка загружает jQuery, и если вы интегрируете уже действующий код из другого не-фреймворческого проекта, он, вероятно, также включает jQuery. В моем случае это произошло при преобразовании некоторых страниц без загрузки, чтобы использовать Bootstrap. –

+0

Я считаю, что это происходит при использовании плагина чата, такого как PureChat. Он загружает собственный JQuery. Я считаю, что Bootstrap добавляет '.tooltip()' к первому (Rails) JQuery. После загрузки второго JQuery вы используете второй JQuery в событиях '$ (document)' и 'turbolinks: load'. Второй JQuery не знает о '.tooltip()'. Комментируя PureChat, проблема уходит. Я собираюсь протестировать, чтобы проверить, существует ли функция до того, как я ее вызову с помощью 'if (typeof jqueryobject.tooltip ===" function ")'. – Chloe

Смежные вопросы