我想使用jQuery/JavaScript创建一个图像滑块。我正在从后端捕获图像,在那里我以自己的帖子类型创建了图库。
The problem: 我想在同一个站点上多次使用此滑块。如果我使用它两次,它将使用相同的导航按钮在第一个库和下一个(第二个)库中运行。每个滑块只能使用自己的导航按钮。
我的模板如下所示:
echo \'<section class="slider"><div class="cont">\';
$galleryImages = get_post_gallery_images();
$gallaryLength = count( $galleryImages );
for( $i = 0; $i < $gallaryLength; $i++ ) {
echo "<div>";
echo "<img src=\'" . $galleryImages[ $i ] . "\'>";
echo "</div>";
}
echo \'</div></section>\';
我正在捕捉画廊图像中的一个阵列,并在前端用回声显示它们。底部有我的滑块导航按钮。
以下是我的滑块CSS:
.cont {
float: right;
position: relative;
text-align: center;
max-width: 200px;
background-color: black;
}
.cont div {
display: none;
width: 100%;
background-color: white;
}
.cont img {
width: 100%;
height: auto;
}
以下是我的jQuery/JavaScript文件:
$( document ).ready( function() {
var currentIndex = 0;
var items = $( \'.cont div\' );
var itemAmt = items.length;
function slideItems() {
var item = items.eq( currentIndex );
items.hide();
item.css( \'display\', \'inline-block\' );
}
$( \'.next\' ).click( function() {
currentIndex += 1;
if( currentIndex > itemAmt - 1 ) {
currentIndex = 0;
}
for( var k = 0; k < items.length; k++ ) {
slideItems();
}
} );
$( \'.prev\' ).click( function () {
currentIndex -= 1;
if( currentIndex < 0 ) {
currentIndex = itemAmt - 1;
}
for( var x = 0; x < items.length; x++ ) {
slideItems();
}
} );
} );
SO网友:ClemC
我的方法(照此理解)只是生成一个唯一的ID,它将区分每个滑块
当同一功能可能在同一页面上多次显示时,这是一种很好的做法。
首先,找到一种生成增量$id
在模板中使用。可能是实例ID。。。这实际上取决于您实现解决方案的方式,我无法从提供的信息中说得更多。
然后,在你的template, 添加节的id
属性:
echo \'<section id="slider_\' . $id . \'" class="slider">\';
然后,在你的
JS script:
获取父级<section>
\'sid
悬停按钮的属性,让我们调用它$section_id
.
然后将选择器更改为:
$("#$section_id .next").click(function () {});