| 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: 6 let
|
|||
0