TypeErrorの取得:$ .widgetは関数Magento 2ではありません


9

Minicart、製品ビューページ、およびチェックアウトページで JavaScriptタイプエラーが発生します

TypeError: $.widget is not a function
           $.widget('mage.priceBox')
           $.widget('mage.dataPost')

どうすればこれを解決できますか?


デプロイコマンドを実行しましたか?
Rakesh Jesadiya

はい、デプロイコマンドを実行していますが、まだエラーが発生します。
Nikul

デプロイ用のコマンドを実行する必要がある場合は、最初にpub / staticフォルダーのコンテンツを削除する必要があります
Rakesh Jesadiya

こんにちはRakeshコマンドを使用してpub / staticフォルダーを削除するコマンド。
Nikul 2016年

手動で削除する必要があります
Rakesh Jesadiya '28

回答:


8

ポルトのテーマを使用して同じ問題がありました。私の場合、jQueryが認識されることもあれば、認識されないこともあります。残念ながら原因はわかりませんでしたが、解決策を見つけました。

つまり、すべてのJavaScriptファイルをマージします。

  1. バックエンドで次の場所に移動します。

Stores -> Configuration -> Advanced -> Developer -> JavaScript Settings

  1. アクティブ化:

    • JavaScriptバンドルを有効にする
    • JavaScriptファイルをマージ
    • JavaScriptファイルの縮小(オプション)
  2. 静的ファイルをデプロイすることをお勧めします

bin/magento setup:static-content:deploy

  1. キャッシュをクリア System -> Cache Management

    • ではAdditional Cache Management地域のボタンを選択してくださいFlush CSS/Javascript Cache
    • そしてFlush Magento Cacheその後

ブラウザのキャッシュをクリアしてリロードします。

このソリューションの開発は満足のいくものではありませんが、少なくとも生産的には、予測できない動作がなく、優れた実用的なソリューションである必要があります。

それが役に立てば幸い..


それは私を助けました、ありがとう。私は同じ問題を抱えていました
bourax

私はCSS / JavascriptとMagentoキャッシュのフラッシュのみを実行し、動作しましたが、あなたの答えは他の場合に役立ちます!開発環境で。JS最適化を無効のままにしておく必要があります。そうしないとデバッグが困難になり、デプロイコマンドを使用することもほとんどありません。ページの更新によってこの静的ファイルの生成がトリガーされます。ありがとうございました !
medmek 2018

これはrequirejs-config.jsと関係があると思います...時々map: { '*': {使用され、時々paths: {...
Black

4

私にもこの問題がありましたが、次の記事に遭遇しました:http : //www.danjoseph.me/2016/09/16/magento-2-widget-not-function/

記事の中で彼は、jqueryがページに2回目にロードされていたため、magentoによって以前にロードされたバージョンを上書きしていると説明しています。私にとっては、何らかの理由でjqueryもロードしていたのはマーケティングスクリプトでした。jQueryは、このタグによってヘッドに1回だけロードされ、その他はすべて削除されます。

<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="jquery" src="http://seatup.local/pub/static/frontend/Seatup/theme/en_US/jquery.js"></script>


-4

テーマフォルダーに移動し、Magento_Themeフォルダーで次のファイルを見つけます。

default_head_blocks.xml

そして交換する

<script src="jquery.js" />

<remove src="jquery.js" />

必ずキャッシュを消去してページを更新してください。

私は同じ問題を抱えており、上記の方法を使用して解決しました。


これを行うと、jQueryが削除されます。質問で説明されているエラーを解決するのは本当ですが、たとえばブートストラップに関連する他のものが壊れています。Uncaught Error: Bootstrap's JavaScript requires jQuery at bootstrap.min.js:6
slayerbleast 2017

jQueryを削除することは、これを処理する正しい方法ではありません。悪いアドバイスです。
Cypher909
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.