Slick 无法处理动态创建的多个 div 元素
Slick not working on multiple div elements created dynamically
我正在使用光滑的滑块来滑动 divs。我的 div 元素是在 for 循环内动态创建的,它不起作用。我还在下面包含了所需的 4 个文件:
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
<link rel="stylesheet" type="text/css" href="http://kenwheeler.github.io/slick/slick/slick-theme.css"/>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"><
以下是我创建动态 divs 的函数。
function populateDataForMainPageSlide(data) {
var numTimes = data.length;
if (numTimes === 0) {
var removeSlider = document.getElementById("sliderMainPage");
removeSlider.style.display = "none";
var removeHeading = document.getElementById("errorDivBlock");
removeHeading.style.display = "block";
} else {
for (var i = 0; i < numTimes; i++) {
if(data[i].shopInfo==null || data[i].shopInfo==undefined){
continue;
}
var parent = document.getElementById("mainPageMask");
var newVendorSlide = document.createElement("div");
var funcString = "storeElementClickedLocalStorageVendor('" + data[i]._id + "');";
var ref = document.createElement("a");
ref.setAttribute("href", "vendorstore.html");
ref.setAttribute("class", "w-inline-block");
ref.setAttribute("onclick", funcString);
newVendorSlide.setAttribute("style","height:300px;width:250px;border:1px solid ref;float:left")
newVendorSlide.appendChild(ref);
var header4 = document.createElement("h4");
header4.setAttribute("class", "heading-52");
header4.innerHTML = data[i].shopInfo.name;
newVendorSlide.appendChild(header4);
var bio = document.createElement("p");
bio.innerHTML = data[i].shopInfo.description;
newVendorSlide.appendChild(bio);
parent.appendChild(newVendorSlide);
}
}
}
谁能帮我解决这个问题?任何帮助,将不胜感激。
你的问题不清楚,所以我不知道为什么它不起作用。 但是请注意,您必须在 div 渲染成功后调用 slick 方法。如果您尝试在 div 在网页上重新显示之前调用 slick,那么它将不起作用。
谢谢。
我正在使用光滑的滑块来滑动 divs。我的 div 元素是在 for 循环内动态创建的,它不起作用。我还在下面包含了所需的 4 个文件:
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
<link rel="stylesheet" type="text/css" href="http://kenwheeler.github.io/slick/slick/slick-theme.css"/>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"><
以下是我创建动态 divs 的函数。
function populateDataForMainPageSlide(data) {
var numTimes = data.length;
if (numTimes === 0) {
var removeSlider = document.getElementById("sliderMainPage");
removeSlider.style.display = "none";
var removeHeading = document.getElementById("errorDivBlock");
removeHeading.style.display = "block";
} else {
for (var i = 0; i < numTimes; i++) {
if(data[i].shopInfo==null || data[i].shopInfo==undefined){
continue;
}
var parent = document.getElementById("mainPageMask");
var newVendorSlide = document.createElement("div");
var funcString = "storeElementClickedLocalStorageVendor('" + data[i]._id + "');";
var ref = document.createElement("a");
ref.setAttribute("href", "vendorstore.html");
ref.setAttribute("class", "w-inline-block");
ref.setAttribute("onclick", funcString);
newVendorSlide.setAttribute("style","height:300px;width:250px;border:1px solid ref;float:left")
newVendorSlide.appendChild(ref);
var header4 = document.createElement("h4");
header4.setAttribute("class", "heading-52");
header4.innerHTML = data[i].shopInfo.name;
newVendorSlide.appendChild(header4);
var bio = document.createElement("p");
bio.innerHTML = data[i].shopInfo.description;
newVendorSlide.appendChild(bio);
parent.appendChild(newVendorSlide);
}
}
}
谁能帮我解决这个问题?任何帮助,将不胜感激。
你的问题不清楚,所以我不知道为什么它不起作用。 但是请注意,您必须在 div 渲染成功后调用 slick 方法。如果您尝试在 div 在网页上重新显示之前调用 slick,那么它将不起作用。
谢谢。