| Autor | Zpráva | ||
|---|---|---|---|
| orel Profil * |
#1 · Zasláno: 14. 4. 2015, 16:55:00
Soubory nahrává vše v pořádku, při zobrazení náhledu mi to zobrazí vše jak má + pod náhledem se vytvoři button .drop-button s odkazem na obrázek.
Ve scriptu mám další zavolání po kliknutí na .drop-button, aby se provedla další akce. Ta se ale stane a provede vše jak má pouze tehdy, pokud jsou obrázky i s odkazy .drop-button zobrazené po načtení stránky. Pokud je nahraji, zobrazí se a poté teprve kliknu na .drop-button (u aktuálně nahraného) tak mě to prostě po kliknití hodí na odkaz, místo aby se provedla akce. Nevím jak toto vyřešit. poradí někdo ? Níže zasílám proces, při kterém funguje upload a dále akci po stisknutí odkazu.. $(document).ready(function()
{
$('a.drop-button').click(function(){
var link_to_drop = $(this).attr('href');
var element = $(this);
$.post("/delete_image.php?type=new&om=deleted&link="+link_to_drop,{ }, function(data, status){
element.parent().next('.deleted_image').show();
});
return false;
});
var settings = {
url: "/upload.php",
method: "POST",
onSubmit: function(data,files){
$(".submit_div").html("<div class='loading'> <img src='/theme/images/loading.gif'> Vydržte, nahrávám soubory... </div>");
count_files=0;
},
onSuccess:function(files,data,xhr)
{
var image = $(".upload-statusbar").find('img#upload_'+count_files);
image.fadeOut('slow', function () {
image.attr('src', "/added-image/"+data);
image.fadeIn('slow');
});
$(image).after('<a class="drop-button" href="/add/deletefile/'+data+'" style="float:left; margin-top:5px;margin-left:10px;">Odebrat</a>');
$(".upload-statusbar").find('img#upload_'+count_files).removeAttr( "id" );
count_files++;
}
....
} |
||
| Keeehi Profil |
#2 · Zasláno: 14. 4. 2015, 19:03:53
To je jasné. Je to kvůli tomu, že v době, kdy se volá ten kód začínající na řádku 4 ten nový button ještě neexistuje. Řešením je si tu událost přiřadit ručně.
var element = ... // vytvoření elementu element.click(function ... // přiřazení události $(image).after(element); Nebo v dřívějších verzích se místo .click(function) dalo použít .live('click', function). Tato funkce pak zajistila, že se události navázaly i na nově vytvořené prvky. Od 1.7 je však deprecated a od 1.9 odstraněná. Podle manuálu by měla být náhradou funkce .on(). Jestli to však funguje i na nově vytvořené elementy nevím. Můžete to zkusit a pak dát vědět.
|
||
|
Časová prodleva: 11 let
|
|||
0