robię ładowarkę plików do opisu próbki - plików może być wiele

działa to na zasadzie, po kliknięciu na ikonę DODAJ plik pokazuje się formularz jest na nim iFrame plik dodaje się "ajaxowo" i jest OK

ale chciałem jescze dodać zarządzanie/ a dokładniej usuwanie pliku (gdyby był dodany przez pomyłkę)

przy dodawaniu pliku ładowana do iFrame jest następująca treść [trochę pomieszane ze SMARTY, ale mam nadzieję że będzie wiadomo o co chodzi

  1. <?php
  2. ///ustawiam kolor tekstu w zależności od tego czy przesłanie zakończyło się sukcesem czy też nie
  3.        {{if $error==0}}
  4.        {{assign var="fbCol" value="#0E8A04"}}
  5.    {{else}}
  6.        {{assign var="fbCol" value="#CF0C14"}}
  7.    {{/if}}        
  8.    $("#divBOFB", parent.document).css("color","{{$fbCol}}");
  9.  
  10.         //ustawiam tekst rezultatu przesyłania pliku
  11.    $("#divBOFB", parent.document).html("{{$text.fileUploadErr[$error]}}")
  12.  
  13.         //zamykam diva blokującego (półprzeźroczysty absolutny div, który zasłania formularz)
  14.    $("#divFileSendBlock", parent.document).hide();
  15.  
  16.         //jeśłi przesłanie zakończyło się powodzeniem
  17.    {{if $error==0}}
  18.  
  19.                //do diva listy plików dodaję element (div) opisujący plik
  20.        $("#divFileListContent", parent.document).append($("<div>").attr("id","divFile_{{$lfid}}").width("265px").height("20px").css("font-size","10px").addClass("pointer"));
  21.  
  22.                //do diva opisującego dodaję takie elementy jak nazwa pliku i ikonka X - do usuwania pliku i diva
  23.        $("#divFile_{{$lfid}}", parent.document)
  24.        .append($("<img>")
  25.                .attr("title","{{$text.fileDel}}")
  26.                .attr("alt","{{$text.fileDel}}")
  27.                .attr("file","{{$fileName}}")
  28.                .attr("id","imgDelFile_{{$lfid}}")
  29.                .attr("src","www/images/deletesmall.gif")
  30.                )
  31.        .append($("#obFile", parent.document).val());
  32.        
  33.        //////////////////////////-TU JEST PROBLEM-//////////////////////////////////////
  34.        //przypisanie zdarzenia ikonki usuwania ! TU JEST PROBLEM
  35.        $("#imgDelFile_{{$lfid}}",parent.document).click(function()
  36.        {
  37.            ajaxDelFile.fileDel({{$lfid}});
  38.        }
  39.        );
  40.        
  41.    {{/if}}
  42. ?>


problem polega na tym, że do iFrame dołączam różne pliki .js (te które są potrzebne)
ale - nie wiem na czym to polega - gdy dodam kolejny plik to ten poprzedni nie reaguje, jest napis że ajaxDelFile jest niezdefiniowane

chciałbym to podłączyć jakoś do zasobów rodzica, aby działało - ale nie mam pojęcia co i jak, może moja koncepcja jest niewłaściwa
może jest problem taki, że trzeba tworzyć iframe coraz to nowe i nowe bo to jest jakoś powiązane

nie wiem co zrobić z tym i jak to obejść


rozwiązanie okazało się proste jak nie wiem co

zamiast podpinac funkcji wystarczy dodać atrybut ONCLICK i działa

czyli zamiast

  1. <?php
  2. $("#imgDelFile_{{$lfid}}",parent.document).click(function()
  3.       {
  4.           ajaxDelFile.fileDel({{$lfid}});
  5.       }
  6. ?>


dałem

  1. <?php
  2. $("#imgDelFile_{{$lfid}}",parent.document).attr("onclick","ajaxDelFile.fileDel({{$lfid}})");
  3. ?>


i zadziałało

ps. czasami tak mam, że po napisaniu czegoś na forum się rozwiązanie znajduje prawie samo