【发布时间】:2017-05-03 20:43:40
【问题描述】:
所以这就是交易:我有一个光滑的轮播,可以从不同幻灯片上的 WordPress 帖子加载不同的部分。其中一张幻灯片包含一个画廊(手工查询,没有插件。),它可以增长很多,具体取决于其中查询的项目数量。我的问题如下:
如何将画廊元素分割为 6 并将它们添加为幻灯片(我使用 .slide 作为幻灯片选择器)在父滑块上,每批 6 个?更清楚地说,我需要从画廊幻灯片中剪切它们,然后将它们按 6 组包装在 .slide div 中,并通过 slick 将它们添加为幻灯片。我在 jQuery 和 PHP 中都尝试了以下方法:
jQuery
var divs = $('.gallery__item');
/* Option 1 - Slicing: doesn't work because it creates the slide div
inside the parent slide div */
for(var i = 0; i < divs.length; i+=6) {
divs.slice(i, i+6).wrapAll("<div class='slide'></div>");
}
/* Option 2 - Slicing & Appending to rendered Slick Track: doesn't work
since it doesn't actually append it because slick-track is script-generated
when carousel is loaded */
for(var i = 0; i < divs.length; i+=6) {
divs.slice(i, i+6).wrapAll("<div class='slide'></div>")
.appendTo("<div class='slick-track'></div>");
}
/* Option 3 - Index through each: doesn't work. Same error as 1 in any case. */
divs.each(function(i) {
if (i % 6 == 0) {
$(this).append('</div><div class="slide">');
}
});
PHP
$i = 1;
<div class="slide">
if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); [Example Query]
if($i % 6 == 0) {echo '</div><div class="slide">';}
$i++; endwhile; endif;
</div>
Slick 本身有一个名为 slickAdd 的 method,但这也不起作用。 :/ 有什么想法吗?
【问题讨论】:
标签: javascript php jquery wordpress slick.js