Javascript 页面加载后是否未定义jQuery DOM元素?(马根托2)

Javascript 页面加载后是否未定义jQuery DOM元素?(马根托2),javascript,jquery,magento,Javascript,Jquery,Magento,我使用jQuery在Magento 2中工作,代码如下: require(["jquery"], function($) { var productCarousel = $('.product-carousel-slideshow'); console.log(productCarousel); } 元素按预期登录到控制台,但是一旦加载页面,我就无法对元素执行任何操作,如果我在控制台中键入productCarousel,它没有定义,这是什么原因造成的?productCarous

我使用jQuery在Magento 2中工作,代码如下:

require(["jquery"], function($) {
    var productCarousel = $('.product-carousel-slideshow');
    console.log(productCarousel);
}

元素按预期登录到控制台,但是一旦加载页面,我就无法对元素执行任何操作,如果我在控制台中键入productCarousel,它没有定义,这是什么原因造成的?

productCarousel是在本地定义到require回调的,只需全局移动定义,您就可以在加载后访问它。

如果您要覆盖magento模块,那么您可以简单地更改文件路径app/design/frontend/vendor name/theme name/module name/requirejs config.js。如果您已创建自定义模块,则app/code/Vendor Name/custom module/view/frontend/requirejs config.js

var config = {
   paths: {            
     'Owlcarousel' : 'VendorName_ModuleName/js/owl.carousel.min'     
  },   
  shim: {
    'Owlcarousel': {
        deps: ['jquery']
     }
  }
}
phtml的脚本:

 <script>
   require([
      'jquery',
      'Owlcarousel'
     ], function ($, Owlcarousel) {
       $('#.product-carousel-slideshow-<?php echo $productsliderId;?>').owlCarousel(<?php echo ($block->getAllOptions())?>);
   });

要求([
“jquery”,
“猫头鹰旋转木马”
],函数($,旋转木马){
$(“#.产品旋转木马幻灯片放映-”).owlCarousel();
});

欢迎使用堆栈溢出!请阅读,四处看看,并通读,特别是“一旦加载了页面,我就不能对元素做任何事情”,告诉我们您在哪里以及如何尝试对它做一些事情。“如果我在控制台中键入productCarousel,它没有定义”当然不是,它不是一个全局的,它是一个仅限于
require
回调的局部范围。如果在该函数中的断点上暂停,则可以从控制台访问该函数,但在其他情况下不能。