Autor | Zpráva | ||
---|---|---|---|
Fisak Profil |
#1 · Zasláno: 13. 9. 2020, 21:15:56
Zdravím,
mám takový měnší problémek. Chtěl bych načítat před určité divy ajaxem vygenerovaný div phpčkem. Příklad: for(var i=0;i<12;i++){ var coordinate_y = eval("1 + " + i); $.ajax({ type: "POST", url: "./../php_scripts/test-object.php?get-data=" + coordinate_y, success: function(resultFromMove){ $(".column-" + coordinate_y).before(resultFromMove); } }); } a všech 12 objektů se načte v pohodě, bohužel se dají všechny před jeden div např. "column-23" tudíž zde se "i" z toho for nepočítá. Nevěděl by si někdo s tímto rady? Moc Děkuji. |
||
lionel messi Profil |
#2 · Zasláno: 13. 9. 2020, 22:32:56
Fisak:
Takisto zdravím, môžem sa spýtať, aký dôvod ťa vedie k použitiu potenciálne nebezpečného var coordinate_y = eval("1 + " + i); namiesto úplne štandardného var coordinate_y = 1 + i; bez WTF prvkov? |
||
Fisak Profil |
#3 · Zasláno: 14. 9. 2020, 08:41:57
lionel messi:
protože ten výpočet je malinko složitější... splituji název divu kde mam v názvu zapsané souřadnice divu a dle toho vypočítávám kam se co má vložit. Tamten kód jsem zjednodušil aby bylo více pochopitelné co potřebuji udělat ale zde je tedy celý kód jak ho mám.... if(moveWhere == "left") { var firstId = $('.row-test div:first-child').attr('class'); var expCoordinate = firstId.split('-'); for(var i=0;i<12;i++){ var coordinate_x = eval(expCoordinate[3] + " + 11"); var coordinate_y = eval(expCoordinate[4] + " + " + i); $(".column-on-map-" + coordinate_x + "-" + coordinate_y + "-" + expCoordinate[5]).remove(); var request = $.ajax({ type: "POST", url: "./../php_scripts/test-object.php?get-data-new-texture=common&coordinateMove=" + expCoordinate[3] + "_" + coordinate_y + "_" + expCoordinate[5] + "&moveWhere=" + moveWhere, }); request.done(function(resultFromMove) { $(resultFromMove).insertBefore(".column-on-map-" + expCoordinate[3] + "-" + coordinate_y + "-" + expCoordinate[5]); }); } } |
||
Fisak Profil |
#4 · Zasláno: 14. 9. 2020, 09:58:19
napadlo mě kód upravit ještě takto:
var request = $.ajax({ type: "POST", url: "./../php_scripts/test-object.php?get-data=" + coordinate_y, success:function(data) { return(data); } }); $(request).insertBefore(".column-" + coordinate_y); ale to bohužel nefugnuje :-/ |
||
Kajman Profil |
#5 · Zasláno: 14. 9. 2020, 11:25:15
|
||
Radek9 Profil |
Fisak:
Pořád nechápu, proč bys měl používat eval . Stačí ty stringy přetypovat na číslo.
var coordinate_x = +expCoordinate[3] + 11; var coordinate_y = +expCoordinate[4] + i; Jinak jak píše Kajman . Je to asynchronní, takže ve chvíli, kdy se volá done , už má proměnná coordinate_y hodnotu z posledního průchodu cyklem. Konkrétně by to v tvém případě mohlo vypadat třeba nějak takhle:
// Použije se IIFE pro zachování hodnoty coordinate_y z konkrétní iterace request.done((function (coordinate_y) { return function (resultFromMove) { $(resultFromMove).insertBefore(".column-on-map-" + expCoordinate[3] + "-" + coordinate_y + "-" + expCoordinate[5]); } })(coordinate_y)); |
||
Časová prodleva: 4 roky
|
0