$ (Hoài) .swMegamothy không phải là hàm [đã đóng]


7

Tôi đang sử dụng chủ đề Smartwave Porto cho trang web Magento 2 của mình, khi tôi tải trang web của mình lần đầu tiên trong bảng điều khiển trình duyệt, nó không hiển thị lỗi nào, nhưng mỗi khi tôi làm mới trang trình duyệt bằng cách nhấn F5hoặc CTRL+SHIFT+R, nó sẽ hiển thị lỗi như Điều này trong bảng điều khiển trình duyệt và trang của tôi không tải đúng cách vì điều này:

lỗi

Câu trả lời:


11
Uncaught TypeError: $ (...). SwMegamothy không phải là một hàm
Uncaught TypeError: $ (...). Stellar không phải là một hàm
Uncaught TypeError: $ (...). OwlCarousel không phải là một hàm
Uncaught TypeError: $ .widget không phải là một hàm

Nếu bạn chịu đựng như vậy, hãy làm điều này:

tạo một requestjs-config.js trong thư mục gốc của chủ đề con

ứng dụng / thiết kế / frontend / Smartwave / porto_child và đặt vào đây:
 var config = {
    shim: {
        jquery: {
            xuất khẩu: '$'
        },
        'Smartwave_Megamothy / js / sw_megamothy':
            {
                deps: ['jquery']
            }, 
        'Owl.carousel / Owl.carousel.min':
            {
                deps: ['jquery']
            },
        'js / jquery.stellar.min': 
            {
            deps: ['jquery']
            },
        'js / jquery.parallax.min':
            {
            deps: ['jquery']
            }
    }
};

Và thay đổi các mục:

    <script src="jquery.js" />
    <script src="bootstrap/js/bootstrap.min.js" />
    <script src="fancybox/js/jquery.fancybox.js" />

Đến:

    <remove src="jquery.js" />
    <remove src="bootstrap/js/bootstrap.min.js" />
    <remove src="fancybox/js/jquery.fancybox.js" />

Trong tập tin:

ứng dụng / thiết kế / frontend / Smartwave / porto_child / Magento_Theme / layout / default_head_blocks.xml

Không cần phải hợp nhất javascripts, không còn lỗi javascript! Tôi không có nhu cầu về Fancybox, tắt nó đi, nhưng nếu bạn có yêu cầu, tôi đoán nó cũng nên được bao gồm trong các yêu cầu.


cảm ơn nó đã hoạt động, nhưng điều gì gây ra vấn đề này là chính xác?
phá hoại

Không có gì. Vui mừng khi biết rằng nó đã giúp bạn. Vấn đề là trình đơn JavaScript đã được tải trước jQuery. Vì vậy, chúng tôi đã xác định sự phụ thuộc của menu JS đó.
Kishan Patadia

Xin chào @KishanPatadia Tôi có cùng một vấn đề với chủ đề porto. Tôi đã sử dụng mã này đang hoạt động tốt. Nhưng sau khi trang sản phẩm giải pháp này hiển thị lỗi (thu phóng không phải là chức năng)
Chander Shekhar

@KishanPatadia có một vấn đề, khi tôi vào trang sản phẩm, tôi gặp lỗi:$(...).zoom is not a function
nortonuser

$(...).zoom is not a functionlà một vấn đề với một cuộc gọi khác đến thư viện js chưa được thêm vào tệp yêu cầu js. Tôi không có cuộc gọi thư viện trên trang web tôi đang làm việc, vì vậy tôi không thể đưa ra giải pháp mã cho trường hợp của bạn, nhưng nhìn vào ví dụ @KishanPatadia, bạn sẽ có thể tìm thấy thư viện để phóng to và thêm nó đến tập tin js yêu cầu. Trong trường hợp của tôi, tôi đã phải thêm fancyboxvào 'fancybox/js/jquery.fancybox': { deps: ['jquery'] }và làm sạch tất cả các vấn đề của tôi.
circleix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.