jQuery的DOM元素不是之后页面加载定义? (Magento的2)
问题描述:
我在Magento 2使用jQuery和我有以下代码:jQuery的DOM元素不是之后页面加载定义? (Magento的2)
require(["jquery"], function($) {
var productCarousel = $('.product-carousel-slideshow');
console.log(productCarousel);
}
元素日志按预期控制台,但是一旦页面加载,我不能做任何事元素,如果我在它没有定义控制台输入productCarousel,这是什么原因?
答
的productCarousel在本地定义为需要回调,只要将定义全球,你将能够在加载后对其进行访问。
答
如果您正在重写magento模块,那么您可以在文件Path中简单更改路径app/design/frontend /供应商名称/主题名称/模块名称/ requirejs-config.js。如果您已经创建自定义模块,然后应用程序/代码/供应商名称/自定义模块/视图/前端/ 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())?>);
});
欢迎堆栈溢出!请把[旅游]看看周围,并通过[帮助]阅读,特别是[*如何我问一个很好的问题?*](/帮助/如何对问)*“一旦页面加载的,我不能做的任何元素“*告诉我们在哪儿,你是如何想用它做什么。 *“如果我在控制台输入productCarousel没有定义” *当然不是,这不是一个全球性的,它是一个局部范围的** **仅向'require'回调。如果您在该功能中的某个断点处暂停,您可以从控制台访问它,但不能以其他方式访问它。 –