webForumDet fria alternativet

JQuery callbacks problem

2 svar · 441 visningar · startad av matlin

matlinMedlem sedan okt. 2006224 inlägg
#1

Sitter och kliar mig i huvudet över en bra/fin lösning på mitt scenario. Jag har följande kod:

$(document).ready(function() {
            $("li").bind('click', function(e) {
                var path = e.currentTarget.firstChild.data;
                $.post("/Library/GetChildDirectories", { parentPath: path }, function(response) {
                    $("#Library").append("<ul>" + response + "</ul>");
                    $("li").bind('click', function(e) {
                        var path = e.currentTarget.firstChild.data;
                        $.post("/Library/GetChildDirectories", { parentPath: path }, function(response) {
                            $("#Library").append("<ul>" + response + "</ul>");
                        });
                    });
                });
            });
        });

Så först har jag en lista med klickbara LI element. När en av dessa klickas triggas en JQuery AJAX till en sida som hämtar ut en ny lista (response parameter). Med ovanstående kod kan jag göra detta två gånger, problemet är att efter varje callback måste jag binda click funktionen till LI igen. Jag skulle vilja att den binds varje gång en ny lista kommer från callbacken.

Vet inte hur detta kan göras på ett bra sätt. Har ni några bra förslag?

voigtann1Medlem sedan juni 20019 519 inlägg
#2

Uppdatera till JQuery 1.3 och använd live event istället, om det är så att din lista (med li) är dynamisk med AJAX så hade jag definitivt kört LIVE events med jquery 1.3, läs mer om live events: http://docs.jquery.com/Events/live

matlinMedlem sedan okt. 2006224 inlägg
#3

Live fungerade utmärkt! Hade inte sett den innan. Tackar för det.

128 ms totalt · 3 externa anrop · v20260731065814-full.b943c234
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)