2011-01-06 16 views

Antwort

3

Platzieren Sie a .delegate() handler unter #showList, damit die Klicks für die dynamisch erstellten .show Elemente verarbeitet werden.

Hier ist Ihr aktualisiertes Beispiel:http://jsfiddle.net/yTkTd/11/

$('#showList').delegate('.show', 'click', function() { 
    showID = $(this).attr("id"); 
    $(".show").fadeOut("slow"); 
    $(this).fadeIn("slow"); 
    $.getJSON('https://api.phish.net/api.js?api=2.0&method=pnet.shows.setlists.get&format=json&apikey=A9E68C2561D7442F041C&callback=?&showid='+showID, function pnet3setlist(data) { 
     $('#showList').append("<div>"); 
     for (i = 0; i < data.length; i++) { 
      var n = data[i]; 
      $('#setList').append("<a class='show' href='#' id='setlist"+n['showid']+"'>"+n['setlistdata']+"</a>"); 
     } 
     $('#showList').append("</div>"); 
    }); 
}); 
+1

Danke, genau das habe ich gebraucht! – switz

+0

@Switz: Gern geschehen. :O) – user113716

0

Ändern Sie den Rahmen zu jQuery. Derzeit ist Mootools Ihre Bibliothek.

+0

Nun, ich habe es in meinem Dokument enthalten (lokal) und es Auslösung nicht. Irgendeine Einsicht, warum das passieren könnte? – switz

+0

hat den vollen Code im Hauptpost – switz

+0

geschrieben ich sehe. Box9 hat Recht. Das Klickereignis wird hinzugefügt, bevor sich die Anker auf der Seite befinden. – sissonb

0

Sie hatten JSFiddle für die Verwendung von mootools festgelegt, während Sie jQuery verwendeten. Ich aktualisierte und lief und der Klick funktioniert gut ... http://jsfiddle.net/yTkTd/6/

+0

in der Hauptpost – switz

1

Die .show Elemente werden dynamisch hinzugefügt, nachdem Ihr Click-Handler angeschlossen ist. Sie sollten .live() statt:

$(".show").live("click", function() { 
    alert('hello'); 
}); 

Dies gleich verhalten wird, verursachen aber jQuery auf Dokumentebene für Click-Ereignisse zu hören (was immer da ist), aber überprüft, ob das Quellelement ein ".show" ist.

+0

Ich habe Dokument bereit, eine Sekunde, werde ich meine gesamte Seite post. – switz

+0

@Switz, jetzt * das ist eine andere Geschichte;) Meine Antwort wurde aktualisiert. –

+0

Danke für die Antwort! – switz