Autor | Zpráva | ||
---|---|---|---|
fojta Profil * |
#1 · Zasláno: 3. 8. 2010, 17:41:29
Zdravím,
tento script bude pro vícesouborový upload na server. Mám odkaz, ktery me pridava pod sebe file input, odkaz na jeho odebrani a nahrat. Pridavani a odebirani inputu funguje skvele. Odkaz nahrat ma udelat jedine a to, ze si Jquery posle POST do php.php, ktery ji vrati JSON s nazvem obrazku. A pote by se mel ten obrazek zobrazit nad inputama v danem Divu. Problem je v tom, ze kdyz si naklikam treba deset inputu. Kliknu u prvniho nahrat, tak se me zobrazi tolik obrazku kolik je inputu, kdyz klikam postupne dolu tak vzdy o jeden mene. Ten input tam je jen tak, jde me o to ze me zatim nefunguje ten ajax tak, aby me nahraj jenom jeden obrazek. Vubec nechapu proc se nahrava vice obrazku. Jsem PHPkar, JavaScript jen pasivne kdyz neco potrebuju, tak se k tomu vzdy nejak dopatlam :) Prikladam jen HTML v PHP je v poradku. $(document).ready(function(){ var i = 1; $("a#addInput").click(function(){ $("#inputs").append(function(){ var input = ""; input += "<div class=\"file\">" input += i + ". <input type=\"file\" name=\"file[]\" />"; input += " <a href=\"javascript:void(0);\" class=\"deleteInput\">odebrat</a>"; input += " <a href=\"javascript:void(0);\" class=\"upload\">nahrat</a>" input += "</div>"; i++; return input; }); $("a.upload").click(function(){ $(this).prev().prev().hide(); $(this).prev().hide(); $(this).hide(); $(this).ajaxStart(function(){ $(this).parent().append(" Uploading"); }); $.post("php.php", { test: "ahoj" }, function(data){ $("<img/>").attr("src", data["text"]).attr("width", 40).appendTo("#values"); }, "json" ); $(this).ajaxStop(function(){ $(this).parent().fadeOut(); }); }); $("a.deleteInput").click(function(){ $(this).parent().fadeOut(1000); }); }); }); <a href="javascript:void(0);" id="addInput">pridej dalsi</a><br /> <div id="values"> </div> <div id="inputs"> </div> [pre][/pre] Předem děkuji za každou radu :) |
||
Tori Profil |
#2 · Zasláno: 5. 8. 2010, 12:59:32
Myslím, že příčina by mohla být v selektoru:
$("a.upload").click(function(){ nahrání obrázku se tedy po kliknutí na a.upload spustí n-krát podle toho, kolik je prvků této třídy na stránce. Zkuste se podívat na vlastnosti objektu event v dokumentaci JQuery |
||
Časová prodleva: 14 let
|
0