В качестве альтернативы хранению в переменной вы можете добавить класс к тому, по которому щелкаете, и затем проверять этот класс при следующем щелчке.
$(".wrap>.item").click(function() {
var last = $(this).siblings(".active").removeClass("active");
$(this).addClass("active");
// output last.text() / $(this).text() as needed
});
Использование кнопок OPs и индекса this.last() как указано в вопросе:
$('.item').click(function() {
var indexLast = $(".item.clicked").index();
var index = $(this).index();
$(this).addClass("clicked").siblings().removeClass("clicked");
$('.result').text(index + ', ' + indexLast);
});
.wrap {
display: flex;
}
.item {
background-color: #2ecc71;
width: 50px;
height: 50px;
margin: 0 10px;
border-radius: 50%;
cursor: pointer;
}
.item:nth-child(even) {
background-color: #3498db;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wrap">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="result"></div>
Расширение этого значения для отображения активных / lastactive с использованием css дает:
$(function() {
$(".wrap>.item").click(function() {
var last = $(this)
.siblings()
.removeClass("lastactive")
.filter(".active")
.removeClass("active")
.addClass("lastactive");
$(this).addClass("active");
});
});
.item {
border: 1px solid black;
height: 20px;
}
.active {
background-color: yellow;
}
.lastactive {
background-color: #CCC;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wrap">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="result"></div>