So würde ich damit umgehen.
Weisen Sie zuerst jedem Link eine eindeutige Klasse zu. Erstellen Sie dann ein Array, das die Klassen für jeden Link enthält, auf den Sie klicken möchten. Dann können Sie überprüfen, ob jede dieser Verbindungen durch Überprüfung geklickt haben, wenn ihre Klasse im jeweiligen Array ist:
var required_links = ["one", "two", "three"];
var count = 0;
$(document).on("click", ".link", function() {
if ($.inArray(this.classList[1], required_links) != -1 && !$(this).hasClass("clicked")) {
console.log("User clicked link '" + this.classList[1] + "' for the first time.");
count++;
$(this).addClass("clicked");
}
if (count == required_links.length) {
console.log("All links clicked");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="link one">Link 1</div>
<div class="link two">Link 2</div>
<div class="link three">Link 3</div>
In dem obigen Code-Schnipsel, ich Überprüfung auf das Vorhandensein der clicked
Klasse. Nach dem Klicken auf das Element wird die Klasse hinzugefügt, sodass nicht erneut darauf geklickt werden kann. Dies stellt sicher, dass Sie auf jede Verbindung klicken müssen, anstatt einfach auf dasselbe Element mehrere Male klicken zu können.
Beachten Sie, dass ich <div>
Tags im obigen Beispiel verwende, aber die gleiche Theorie funktioniert, indem Sie einfach die relevanten Klassen an das <a>
Tag anhängen.
Hoffe, das hilft! :)
nur Wert auf 'true' gesetzt, wenn alle Links angeklickt wurden? Einen "angeklickten" Wert für jeden der Links setzen? –
Haben Sie einen Beispielcode? – henrybbosa
Beispielcode noch nicht, ich suche nach einer Option, es zu tun. Du würdest also so etwas wie das Überprüfen aller Link-Klassen (wie Link-Sponsor) und das Hinzufügen einer anderen Klasse oder eines Datenwerts dafür sagen, sobald es geklickt hat? Das ist eine nette Idee, danke. – Astinox