Попробуйте с этим:
window.onload = function() {
var anchors, clicked_count, clicked, i, cur_anchor, my_anchor_id;
anchors = document.getElementsByTagName("a");
clicked_count = 0;
clicked = {};
for (i = 0; i < anchors.length; i++) {
cur_anchor = anchors[i];
cur_anchor.setAttribute("data-anchor-id", i);
cur_anchor.onclick = function (e) {
e = e || window.event;
e.preventDefault();
my_anchor_id = this.getAttribute("data-anchor-id");
if (!(my_anchor_id in clicked)) {
clicked[my_anchor_id] = null;
if (++clicked_count === anchors.length) {
console.log("WOULD BE REDIRECTING");
//window.location.href = "NEW URL";
}
}
};
}
};
DEMO:http://jsfiddle.net/hCRtD/1/
Чтобы доказать демо-работу, нажмите на некоторых якорях несколько раз, прежде чем нажать на последнем необходимо. Он будет не просто завершиться после трех щелчков мыши (мое исходное решение было ошибочным таким образом), но будет ждать, пока каждый из них будет нажат хотя бы один раз.
Он устанавливает специальный атрибут на всех тегах <a>
, однозначно идентифицируя их. Очевидно, можно использовать id
, но вы его не включили, и это достаточно легко сделать.
Затем, когда щелчок привязан (только в первый раз), его уникальный идентификатор добавляется в коллекцию (clicked
).
Когда счетчик (clicked_count
), который увеличивается каждый раз при первом щелчке якоря, достигает общего количества якорей, найденных в первую очередь, затем все завершено.
После того как пользователь нажмет на третью ссылку, вы не ждать его/ее, чтобы прочитать соответствующий текст? – Christophe