Я новичок в jQuery, я хочу получить список последних последних div ID's
.
моя потребность в том, когда пользователь нажимает кнопку отмены, тогда я хочу переместить пользователя в последний 2-й щелчок div.
Попробуй это:
var clicks = [];
$("div[id^=test]").on('click',function() {
clicks.push(this.id);
});
$("button").on('click',function() {
console.log(clicks.pop())
});
Это использует массив для хранения всех кликов, а также удаление и удаление последнего нажатия кнопки.
Чтобы прочитать о .push() и .pop().
Создайте массив "history", который выталкивает идентификатор каждый раз, когда нажимается div:
var history = [];
$('div').click(function(){
history.unshift(this.id);
})
И при отмене нажмите:
$('button.cancel').click(function(){
history.shift();
})
history[0]
всегда получит последний добавленный идентификатор. Использование history.shift()
удалит первую ячейку истории.
Чтобы сохранить предыдущие клики, вы захотите сохранить клики в массиве следующим образом:
clicks = [];
$(function () {
$("div").on("click", function (e) {
// The following is what you wanted, but the uncommented code is better (as it saves future DOM lookups)
// clicks.shift($(this).attr("id"));
clicks.shift(this);
// If you want to use jQuery on the objects, you'll need to call jQuery on them ex: $(this)
// If you do want to remove previous elements, uncomment the following code
// if(clicks.length > 3){
// clicks.pop();
// }
});
});
Каждый раз, когда происходит щелчок, объект, который был нажат, будет сохранен в массиве (clicks.push(this)
). Позже вы можете ссылаться на массив. clicks[0]
будут иметь самый последний щелчок, clicks[1]
самые последние и т.д.
Итак, чтобы сделать то, что вы описали, вы будете выполнять функцию по следующим направлениям:
$(function () {
$("#cancel").on("click", function (e) {
$(clicks[1]).yourMethods();
});
});