私はこのHTML構造を持っています:
<body>
<div id="content" class="clearfix">
<!-- Page 1 -->
<div>
<div class="description"><h2>Apolonija, zubarska ordinacija</h2><p>Nesto u vezi Apolonija zubarske ordinacije ce biti detaljno ispisano na ovom mjestu razlicito za svaki tab. Takodje moguce je dodati sliku kao sto je na slici dizajna.</p></div>
<img src="content/images/ordinacija1.jpg" />
</div>
<!-- Page 2 -->
<div>
<div class="description"><h2>Apolonija, zubarska ordinacija</h2><p>Nesto u vezi Apolonija zubarske ordinacije ce biti detaljno ispisano na ovom mjestu razlicito za svaki tab. Takodje moguce je dodati sliku kao sto je na slici dizajna.</p></div>
<img src="content/images/ordinacija2.jpg" />
</div>
<!-- Page 3 -->
<div>
<div class="description"><h2>Apolonija, zubarska ordinacija</h2><p>Nesto u vezi Apolonija zubarske ordinacije ce biti detaljno ispisano na ovom mjestu razlicito za svaki tab. Takodje moguce je dodati sliku kao sto je na slici dizajna.</p></div>
<img src="content/images/ordinacija3.jpg" />
</div>
<!-- Page 4 -->
<div>
<div class="description"><h2>Apolonija, zubarska ordinacija</h2><p>Nesto u vezi Apolonija zubarske ordinacije ce biti detaljno ispisano na ovom mjestu razlicito za svaki tab. Takodje moguce je dodati sliku kao sto je na slici dizajna.</p></div>
<img src="content/images/ordinacija4.jpg" />
</div>
</div>
<div id="navigation" class="clarfix">
<div id="accordion">
<!-- 1st header and pane -->
<img src="horisontalTabsAccordion/images/button1.jpg" />
<div style="width: 250px; display:block"><h3>Apolonija, zubarska ordinacija</h3><p>Nesto pise malo vise malo manje :)</p></div>
<!-- 2nd header and pane -->
<img src="horisontalTabsAccordion/images/button2.jpg" />
<div><h3>Apolonija, zubarska ordinacija</h3><p>Nesto pise malo vise malo manje :)</p></div>
<!-- 3rd header and pane -->
<img src="horisontalTabsAccordion/images/button3.jpg" />
<div><h3>Apolonija, zubarska ordinacija</h3><p>Nesto pise malo vise malo manje :)</p></div>
<!-- 4th header and pane -->
<img src="horisontalTabsAccordion/images/button4.jpg" />
<div><h3>Apolonija, zubarska ordinacija</h3><p>Nesto pise malo vise malo manje :)</p></div>
</div>
<div id="buttons">
<a href="#" class="btn-prev"><div class="previous-icon"></div></a>
<a href="#" class="btn-next"><div class="next-icon"></div></a>
</div>
</div>
<script type="text/javascript">
$("#accordion").tabs("#accordion div", {
tabs: 'img',
effect: 'horizontal'
});
</script>
そして、この JavaScript を使用します: buttons.js:
var currentTab = null;
var choosenTab = null;
function bindTabs() {
// Set current tab variable when image is clicked
$('#accordion img').each(function() {
$(this).bind('click', function() {
currentTab = $(this);
});
});
}
function bindNext() {
$('.btn-next').bind('click', function(){
choosenTab = currentTab.nextUntil('img').next();
if (choosenTab.length != 0) { // Next image tag found
choosenTab.get(0).click();
currentTab = choosenTab;
}
return false;
});
}
function bindPrevious() {
$('.btn-prev').bind('click', function(){
choosenTab = currentTab.prevUntil('img').prev();
if (choosenTab.length != 0) { // Previous image tag found
choosenTab.get(0).click();
currentTab = choosenTab;
}
return false;
});
}
$(document).ready(function(e) {
currentTab = $('#accordion').find('img.current');
bindTabs();
bindPrevious();
bindNext();
});
そしてpager.js:
var currentPageIndex = 0;
var currentPage = null;
var choosenPage = null;
function setCurrentPage() {
currentPage = $('#content > div:first-child');
}
function setInitialCurrentPage() {
$('#content > div:first-child').addClass("currentPage");
setCurrentPage();
choosenPage = currentPage;
}
function addRemoveCurrentPageClass() {
choosenPage.addClass('currentPage');
currentPage.removeClass('currentPage');
}
function preparePrevButton() {
$('.btn-prev').bind('click', function() {
setCurrentPage();
choosenPage = currentPage.prevUntil('div').prev();
console.log(choosenPage); // Always is null
if (choosenPage.length != 0) {
addRemoveCurrentPageClass();
currentPage = choosenPage;
}
return false;
});
}
function prepareNextButton() {
$('.btn-next').bind('click', function() {
setCurrentPage();
choosenPage = currentPage.nextUntil('div').next();
console.log(choosenPage); // Always is null
if (choosenPage.length != 0) {
addRemoveCurrentPageClass();
currentPage = choosenPage;
}
return false;
});
}
function prepareNavButtons() {
preparePrevButton();
prepareNextButton();
}
function prepareAcordionTabs() {
}
$(document).ready(function(e) {
setInitialCurrentPage();
prepareNavButtons();
prepareAcordionTabs();
});
問題は、現在の div の次または前の div を見つけたいときに発生します。現在のdivは、クラス「currentPage」を持つものです。
すべてのソース コードが必要な場合は、Mercurial を使用して Google コードからデータを取得できます。Google コード プロジェクト サイトは次のとおりです: https://code.google.com/p/apolonia-slide-pager/