【发布时间】:2016-12-22 17:23:47
【问题描述】:
我遇到了一段代码(下面是从https://stackoverflow.com/questions/31459832/randomise-and-order-divs-slick-js 提取的)的问题,该代码本质上是为英雄滑块随机化一组幻灯片(使用 slick.js)。这个特殊的 sn-p 随机化幻灯片,但在幻灯片结束时保持最后一张幻灯片的顺序。
让我感到困惑的部分,我确信与我的问题相关的部分是绑定/分离/附加序列。我的目标是将第一张幻灯片放在开头,而不是最后一张幻灯片。 我假设 if 语句应该检查 0,而不是数组长度 1... 如上所述,我的困惑是绑定/分离/追加。
如果有人能阐明我应该前进的方向,将不胜感激。我的 Javascript 有点生疏,我相信你能看出来!
非常感谢。
JJ
$.fn.randomize = function (selector) {
var $elems = selector ? $(this).find(selector) : $(this).children(),
$parents = $elems.parent();
$parents.each(function () {
$(this).children(selector).sort(function (childA, childB) {
// * Prevent last slide from being reordered
if($(childB).index() !== $(this).children(selector).length - 1) {
return Math.round(Math.random()) - 0.5;
}
}.bind(this)).detach().appendTo(this);
});
return this;
};
$('#carousel-hero .carousel-inner').randomize().slick({
speed: 3000,
dots: true,
fade: true,
autoplay: true,
autoplaySpeed: 3000,
prevArrow: '<button type="button" data-role="none" class="carousel-control left slick-prev">Previous</button>',
nextArrow: '<button type="button" data-role="none" class="carousel-control right slick-next">Next</button>',
});
}
【问题讨论】:
标签: javascript jquery append bind