もともと bootstrap-slider というライブラリが使われていて
jquery-ui というライブラリを新たに使いたいのですが
既存の bootstrap-slider を使うコードが以下のように jquery-ui をみにいってエラーを吐きます
Uncaught Error: no such method 'setValue' for slider widget instance at Function.error (jquery-3.3.1.min.js:2) at HTMLInputElement.<anonymous> (jquery-ui.js:252) at Function.each (jquery-3.3.1.min.js:2) at w.fn.init.each (jquery-3.3.1.min.js:2) at w.fn.init.$.fn.(anonymous function) [as slider] (https://code.jquery.com/ui/1.12.1/jquery-ui.js:236:10)
メソッド名がコンフリクトして上書きされてるんだと思うのですが
JS の読み込む順番は bootstrap-slider のほうが後になっても jqueryui をみにいってしまいます
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" data-turbolinks-eval=false></script> <script src="/assets/bootstrap-slider.self.js?body=1" media="all" data-turbolinks-track="true"></script>
こういう場合どうやって解決するのがいいのでしょうか
ライブラリ名.メソッド とか ファイル名.method みたいに指定する方法はないのでしょうか
追記:
jQuery のメソッド名をリネームする方法はないでしょうか
おそらく bootstrap-slider がグローバル定義で
jquery-ui が $(() => {}) とかの中にかいてあるために後から上書きされてるんだと思うんですが
bootstrap-slider が読み込まれてから $(() => {}) が実行される前のグローバルスコープで
$(xyz).slider() というメソッドをリネームすれば解決しそうな気がするのですが
jQuery オブジェクトに対するメソッドはどうやって取得すればいいのでしょうか
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/12/20 05:59