Проблема с вашим исходным кодом заключалась в том, что вы перебирали элементы dom, которые были в том же порядке, каждый раз, когда нажимали li
.
$('li').on('click', function(){
$('li').attr({
style: ''
});
var place = $(this).attr("class");
if (typeof place !== "undefined"){
place = parseInt(place.replace("li-",""));
}else{
place = $(this).index() + 1;
}
$(this).css('z-index', '2').attr('class','').addClass('li-4');
$('li').not($(this)).each(function(){
var thisPlace = $(this).attr("class");
if (typeof thisPlace !== "undefined"){
thisPlace = parseInt(thisPlace.replace("li-",""));
}else{
thisPlace = $(this).index() + 1;
}
if(thisPlace > place){
$(this).attr('class','');
$(this).addClass('li-' + (thisPlace - 1));
}
});
});
Это не самый изящный ответ, но он работает. Это проверяет класс сначала и анализирует номер как переменную «место», если класс не существует, он проверяет индекс элемента в пределах ul
.
Что нужно для установки индекса z на 2? –
Я не знаю, это было в коде, указанном в jsfiddle, поэтому я оставил его, подумал, что это может быть важно и оставить его там. – Trug
Большое спасибо .. Я добавил z-index только для того, чтобы принести щелчок вверх. –