jQuery - Hinzufügen von click-Ereignis auf Div und gehe zum ersten link gefunden
Ich denke, dass ich schon zu viel Zeit auf der Suche nach dieser Funktion, und gerade stecken versuchen, herauszufinden, die schönen, sauberen Weg, es zu tun.
Ist es eine jQuery-Funktion fügt hinzu, dass ein click-Ereignis für alle div
hat eine click
CSS-Klasse. Wenn das div.click
geklickt wird, leitet es den Benutzer auf den ersten link gefunden.
function clickabledivs() {
$('.click').each(
function (intIndex) {
$(this).bind("click", function(){
window.location = $( "#"+$(this).attr('id')+" a:first-child" ).attr('href');
});
}
);
}
Den code einfach funktioniert, obwohl ich bin mir ziemlich sicher, dass es eine relativ besseren Weg, um es zu erreichen, speziell den Selektor die ich benutze: $( "#"+$(this).attr('id')+" a:first-child" )
. Alles schön lange und langsam. Irgendwelche Ideen?
Bitte lassen Sie mich wissen, wenn Sie brauchen mehr details.
Danke!
PS: ich habe festgestellt, dass einige wirklich schöne jQuery-benchmarking-Referenz aus Project2k.de hier:
http://blog.projekt2k.de/2010/01/benchmarking-jquery-1-4/
InformationsquelleAutor Xavi Esteve | 2010-04-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Je nachdem, wie viele dieser
div.click
Elemente, die Sie haben, möchten Sie vielleicht zu verwenden, event-delegation Griff diese Klicks. Dies bedeutet die Verwendung eines einzigen Ereignis-handler für alle divs, dieclick
Klasse. Dann, im inneren, dass event-handler, wird Ihre callback-Handlungen, auf dessen Grundlagediv.click
dem Ereignis entstanden ist, aus. Wie diese:Weniger event-Handler bedeutet eine bessere Skalierung - mehr
div.click
Elemente, die nicht verlangsamen Ihren event-handling.Nur ein kurzes zwicken, "wenn ($target.ist('div.klicken Sie auf')" muss ein zusätzliches ) am Ende. Nochmals vielen Dank!
Hoppla, danke! Ich werde das beheben.
vielen Dank für diese einfache Lösung, versuchte div anklickbar basierend auf h3 Titel ein href " drin und das funktioniert!
InformationsquelleAutor Matt Ball
optimiert delegation mit jQuery 1.7+
InformationsquelleAutor Bastian Rang
Anstelle der Bindung aller Klicks auf laden, warum nicht binden Sie auf klicken Sie auf? Sollte viel mehr optimal.
InformationsquelleAutor Jeriko
Ich würde wahrscheinlich so etwas tun;
Ich bin mir ziemlich sicher, dass er nur Mittel
'a'
statta
.InformationsquelleAutor David Yell