1. ホーム
  2. javascript

[解決済み] $(...).popoverは関数ではありません。

2022-02-24 04:54:05

質問

この問題を扱っているここのかなりの数の投稿に目を通しましたが、どれも私の問題を解決していないようです。

jQuery と Bootstrap の js ファイルを正しい順序でインポートしました。ブートストラップパネルなどは、全く問題なく動作しています。

私のスクリプトのインポートはこのような感じです。

   <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
   <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
   <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">

しかし

 $('[data-toggle="popover"]').popover();

Chromeのコンソールに以下のようなメッセージが表示されます。

 Uncaught TypeError: $(...).popover is not a function

最初、ポップオーバーがCDNのコピーに含まれていないのではと思い、ここからすべてのプラグインを含むローカルコピーをダウンロードしました。

http://getbootstrap.com/customize/

と表示され、同じエラーメッセージが表示されました(script タグをローカルの js ファイルに向け直しました)。

bootstrap.min.js ファイルで "popover" を検索しています。

http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js

popoverがファイルに含まれていることを示す。

解決方法は?

jQueryと他のライブラリが正しく含まれているとのことですので、1つの可能性として、ページ内に複数のjQueryのインスタンスが存在することが考えられます。

そこで、使用されているサーバー技術に基づいて、jQueryの重複バージョンを検索し、もしあれば削除します(不要であれば、他の方法を考えなければなりません)。 noConflict() を使用します)。

jQueryインスタンスが重複している場合、プラグインがアタッチされているjQueryのバージョンが、プラグインを使用するためにアクセスしているものと異なる可能性があり、その場合、プラグインが見つからないという問題が発生します。