2017-12-18 245 views
-1

我在Magento 2使用jQuery和我有以下代碼:jQuery的DOM元素不是之後頁面加載定義? (Magento的2)

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

元素日誌按預期控制檯,但是一旦頁面加載,我不能做任何事元素,如果我在它沒有定義控制檯輸入productCarousel,這是什麼原因?

+1

歡迎堆棧溢出!請把[旅遊]看看周圍,並通過[幫助]閱讀,特別是[*如何我問一個很好的問題?*](/幫助/如何對問)*「一旦頁面加載的,我不能做的任何元素「*告訴我們在哪兒,你是如何想用它做什麼。 *「如果我在控制檯輸入productCarousel沒有定義」 *當然不是,這不是一個全球性的,它是一個局部範圍的** **僅向'require'回調。如果您在該功能中的某個斷點處暫停,您可以從控制檯訪問它,但不能以其他方式訪問它。 –

回答

0

的productCarousel在本地定義爲需要回調,只要將定義全球,你將能夠在加載後對其進行訪問。

0

如果您正在重寫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())?>); 
    }); 

相關問題