Jquery elke() Teller

Ik heb gedaan wat zoeken rond de documentatie, en heb een tijdje op het net, maar kan niet vinden van een oplossing voor dit! Ik wil de waarschuwing om mij te vertellen welke versie van elk() het was op wanneer de .de duim wordt geklikt.

BIJVOORBEELD: Er zijn zes .duim ik klik op de nummer 3, de browser pop-up 3!

Wat er eigenlijk gebeurt is, ongeacht welke .de duim is geklikt, 6 opduikt.

var counter = 1;
$('.thumb').each(function () {
    $(this).click(function () {
        alert (counter);
    });
    counter++;
});

Alle hulp is dankbaar ontvangen.

InformationsquelleAutor adamg2000 | 2010-10-14



2 Replies
  1. 69

    Dat is omdat je het delen van dezelfde counter variabele voor alle click handlers en het is wat het eindigt aan het einde van de lus. In plaats daarvan, gebruik maken van het één kwam het in de loop (de index van de parameter .elke() dat er al is), als dit:

    $('.thumb').each(function (i) {
        $(this).click(function () {
            alert (i+1); //index starts with 0, so add 1 if you want 1 first
        });
    });

    U kunt hier testen.

  2. 0

    Gebruik te maken van een oplossing, zoals @Paulo gesuggereerd, zou je hoeft te doen zo als dit:

    var list = $('.thumb');
    
    for(var i=0; i<list.length; i++) {
        (function( i_local ) {
            list.eq( i ).click(function(){
                alert(i_local);
            });
        })( i + 1 );
    }​

    …al zou ik het gebruik @Nicks .elke() oplossing, in plaats. Veel schoner.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *