Ich möchte eine each
Funktion in meinem Skript verwenden, aber diese Funktion wird in einem Objekt verwendet, was bedeutet, dass es einen Fehler zurückgibt ... Das Objekt, das ich verwenden möchte each
in ist newPlots
.jQuery jede in einem Objekt verwenden
Vielleicht kennen Sie einen Trick?
Ich möchte Plots in newPlots
mit dem Inhalt von AJAX zurückgegeben werden. Im Klartext, schauen newPlots wie folgt aus:
var newPlots = {
"City" : {
x : 45.834444,
y : 1.261667,
text : {content : "City"},
tooltip : {content : "City"}
}
, "City2" : {
size:60,
x : 47.323056,
y : 5.041944,
text : {
content : "City",
position : "left",
margin : 5
}
}
}
Und das, was ich tun möchte, ist mit each
Funktion in newPlots
.
Hier können Sie meinen Code finden:
$.ajax({
type: "post",
url: '<?php echo $this->Url->build(array('controller'=>'Villes','action'=>'viewresult')); ?>',
data: {
departements: dptcode
},
dataType : "json",
success: function (ret) {
// Update some plots and areas attributes ...
var updatedOptions = {'plots' : {}};
// add some new plots ..
var newPlots = {
$.each(ret, function(index, element) {
"Limoge" : {
x : element.x,
y : element.y,
text : {content : "Limoge"},
tooltip : {content : "Limoge"}
},
});
}
// and delete some others ...
var deletedPlots = [];
$(".mapcontainer").trigger('update', [updatedOptions, newPlots, deletedPlots, {animDuration : 1000}]);
},
error : function(xhr, textStatus, errorThrown) {
alert('An error occurred! ' + errorThrown);
}
});
Es funktioniert nicht ... – FabriceDouceur
So bascically, möchten Sie ein Array von Objekten bekommen ??? Dein Code macht keinen Sinn und weil du nicht erklärst, was dein erwartetes Verhalten ist, ist es schwer es herauszufinden ... –
Ändere es in -> var newPlots = $ .map (ret, function (index, Element) {return "Limoge": { x: element.x, y: element.y, Text: {Inhalt: "Limoge"}, Tooltip: {Inhalt: "Limoge" }} }); – Amir