2013-02-22 3 views
0

Я использую два якорных тега: «предыдущие слайд-коллекции» и «следующие слайд-коллекции». Следующий якорь работает, а предыдущий - нет.Как получить предыдущий div на событие click?

JavaScript:

$("#next-slide-collections").click((function(){ 
     //alert('hi'); 
    var counter = 0; 
    return function() 
    { 
     $("#div" + counter).hide("fast"); 
     counter = (counter % 3) + 1; 
     $("#div" + counter).show("fast"); 
    } 
})()); 

$("#previous-slide-collections").click((function(){ 
    //alert('hi'); 
    var counter = 0; 
    return function() 
    { 
     $("#div" + counter).hide("fast"); 
     counter = (counter - 1); 
     $("#div" + counter).show("fast"); 
    } 
})()); 

HTML:

<div id="div1"></div> 
<div id="div2"></div> 
<div id="div3"></div> 
<a id="previous-slide-collections"></a> 
<a id="next-slide-collections"></a> 
+3

Где код относится к 'previous-slide-collections'? –

+0

Просто взглянув на существующую логику, ваша предыдущая кнопка коллекции слайдов не будет синхронизироваться с вашей следующей кнопкой коллекций слайдов, так как каждый из них получит свой собственный счетчик var. с учетом этого, если ваша предыдущая кнопка также начинается с счетчика в 0, никогда не будет предыдущего. –

+0

Ваш код установлен только для следующего. Есть набор ntohing для подключения предыдущего. '$ (" # next-slide-collections, # previous-slide-collections ")' будет нацелен как на следующий, так и на предыдущий. Я не знаю, каков ваш вопрос. –

ответ

0

Ваших следующие и предыдущие кнопки каждый использовать свой собственный переменный счетчик. Ваша следующая кнопка должна работать, однако, поскольку счетчик предыдущей кнопки начинается с 0, щелчок по ней будет равным -1, который выберет 0 элементов. Чтобы подтвердить, измените свой предыдущий счетчик, чтобы начать с 3, и вы увидите, что он что-то делает.

Заставьте их использовать одну и ту же переменную, и она должна работать (в основном).

var counter = 0; 
$("#next-slide-collections").click(function() 
    { 
     $("#div" + counter).hide("fast"); 
     counter = (counter % 3) + 1; 
     $("#div" + counter).show("fast"); 
    } 
); 

$("#previous-slide-collections").click(function() 
    { 
     $("#div" + counter).hide("fast"); 
     counter = (counter - 1); 
     $("#div" + counter).show("fast"); 
    } 
); 

Вы по-прежнему должны учитывать, что нажимаете кнопку prev, когда она находится на первом div, а затем, когда она на последнем.

+0

Сейчас он работает. Спасибо –

+0

Возможно ли это? следующий и предыдущий могут работать в цикле? –

+1

Возможно ли, что это ужасный способ расспросить все, что связано с программированием. Практически все возможно так или иначе. –

Смежные вопросы