我在一个页面上使用多个滑块时遇到了同样的问题:用于控制幻灯片的公共功能不起作用(与您在示例中所做的相同)。
解决方案是设置 controls=true 并为每个实例创建唯一的“prevSelector”和“nextSelector”。这样,bxslider-instance 就有了每个唯一的 prev en next-buttons(图像或您在其中作为文本填写的任何内容)。我认为不需要将 bxslider 连接到唯一的 div(id) 的方式。
此实现适用于我,将 childid 作为唯一性绑定变量:
html (/php):
<div id="previousperiod_<?=$this->child->getId()?>"></div>
<div class="bxslider" id="bxslider_<?=$this->child->getId()?>" childid="<?=$this->child->getId()?>">
<div>slide1</div>
<div>slide2</div>
</div>
<div id="nextperiod_<?=$this->child->getId()?>"></div>
Javascript:
$("div.bxslider").each(function() {
var childid = $(this).attr("childid");
var sliderid = $(this).attr("id");
$("div#"+sliderid).bxSlider({
infiniteLoop: false,
pager: false,
controls: true,
nextText: "<img src=\"img/icon/arrow_right.png\"/>",
prevText: "<img src=\"img/icon/arrow_left.png\"/>",
prevSelector: "#previousperiod_"+childid,
nextSelector: "#nextperiod_"+childid,
onSlideBefore: function($slideElement, oldIndex, newIndex) {
//handle appearance prev- and nextSelectors
}
});
});
您可以使用回调函数来处理 prev- 和 nextSelector 的外观。