2016-07-26 6 views
0
function displayFeeds(items){ 
    var ul = $('#itemsList'); 
    for (var i = 0; i < items.length; i++) { 
     var li = $('<li/>', { 
     click: function() { 
      alert(i); 
     }, 
     class : "ggwapi" 
     }).text(items[i].Title); 

     var pubDate = $('<div/>', { 
     'class': 'pubDate' 
     }).text(items[i].imdbID); 

     li.append(pubDate); 

     ul.append(li); 

    } 
} 

Der obige Code ist eine Funktion displayFeeds, die auf ein JSON-Format aus einer Liste erhalten Daten erhalten Namen Artikel. Die erste for-Schleife ist diejenige, die die Methode wiederholt, alle Elemente von der Liste abzurufen und in ein bestimmtes html innerhalb eines li> Tags zu übernehmen. Alles (Klasse, Klick-Funktion, Anzeige des angegebenen Textes, Alarm-/Nachrichtenanzeige usw.) geht gut in diesem Code mit Ausnahme von 1 Teil.Führen Sie eine Liste mit Klickfunktion für jeden Eintrag in der Liste durch. MobileFirst

Die von der Alarmbox angezeigte Nachricht (die der Wert von i sein soll) ist dieselbe. Angenommen, ich habe 10 Datensätze aus der Liste, jedes Mal, wenn ich auf ein Element in der Liste klicke, werden alle (in der msgbox) "10" angezeigt. Ich möchte, dass sie die Indexnummer anzeigen, die sie halten. Der erste Eintrag in der Liste sollte "1" anzeigen, der zweite sollte "2" sein und so weiter.

Bitte mir jemand mit dieser :(helfen Danke

PS:... Ich Eclipse Luna bin mit

Antwort

0

nicht jeder seine eigene Klick-Funktion geben Sie, da sie sind alle gleich Stattdessen geben Sie jedem eine ID, die gleich i ist, und machen dann eine Klick-Funktion für alle Elemente mit dieser Klasse, die die ID alarmiert, etwa wie folgt:

function displayFeeds(items) { 
    var ul = $('#itemsList'); 
    for (var i = 0; i < items.length; i++) { 
     var li = $('<li/>', { 
     class : "ggwapi", 
     id : i 
     }).text(items[i].Title); 

     var pubDate = $('<div/>', { 
     'class': 'pubDate' 
     }).text(items[i].imdbID); 

     li.append(pubDate); 

     ul.append(li); 
    } 
} 

$('.ggwapi').click(function() { 
    var itemID = $(this).attr('id'); 
    alert(itemID); 
}); 
Verwandte Themen